[Rcode]資料框的基礎操作【不定期更新】
阿新 • • 發佈:2019-01-06
一 資料的篩選與處理
1 新增新的一列,把連續型變數(如身高)轉化為類別型變數
data$height[data$height>=3]<-NA #把異常值重新編碼為缺失值
data<-within(data,{
heightcat<-NA
heightcat[height>1.8]<-"taller"
heightcat[height>=1.6&height<=1.8]<-"middle"
heightcat[height<1.6]<-"shorter"}) #建立一個類別型變數給身高資料歸類
#注意這裡heightcat只是一個字元型變數,而不是一個有序型因子
#注意within的用法,可以修改資料框
2 變數的重新命名
#method 1
fix(data) #互動修改
#method 2
names(data)[i]<-"newname"
#method 3
library(plyr)
rename(data,c(oldname="newname",oldname="newname"))
3 缺失值處理
is.na(data[,1:5]) #識別缺失值
na.omit(data) #移除所有含有缺失值的觀測(即刪除行)
#原始資料中a<=0,b<=0,c<=0則表示缺失,用於刪除含缺失值的行
data<-read.csv("d:/data.csv",header=T,sep=",")
attach(data)
index=a>0&b>0&c>0
data<-data[index,]
4 資料集取子集
newdata<-data[,6:10] #直接挑選變數
newdata<-data[c(-1,-2)] #刪除第一個和第二個變數,等價於data$var1<-data$var2<-NULL
# 選擇觀測
newdata<-data[1:3,] #直接選擇行
newdata<-data[data$heightcat=="taller"&data$height>1.5,] #使用attach函式就不用加美金符號
#subsset函式
newdata<-subset(data,height>=1.7|height<1.5,select=c(height,heightcat))
newdata<-subset(data,heightcat=="taller",select=height:heightcat)