Lesson3: DataFrame中的数据处理操作

1、根据条件筛选行和列

既筛选行又筛选列

names(df) # 快速查看所有变量名,方便复制
df1 <- subset(df, EXPENOD>0, select<-c("AGE","ANYLIMIT","COLLEGE","HIGHSCH", "GENDER"))

只筛选行

df1 <- subset(df,ANYLIMIT==1)
# 或者
df1 <- df[df$ANYLIMIT==1,]

只筛选列

df1 <- subset(df,select=AGE:COLLEGE)
# 或者
df1 <- df[c("AGE","ANYLIMIT")]

筛选行和列后赋值

df$COLLEGE[df$AGE>20]<-"NO"

2、创建新变量

attach(df)
df$stupid <- AGE+ANYLIMIT
detach(df)

定义stupid时,不可以丢掉df$,那样会单独生成一个value,而非DataFrame中的变量。如果没加attach(df),需要写成

df1$stupid <- df1$AGE + df1$ANYLIMIT

3、排序

df <-df1[order(df1$AGE,-df1$ANYLIMIT),] 
df2 <- df2[order(df2$EXPENDOP,na.last=TRUE,decreasing=TRUE),]

注意:1)必须加逗号 。2)排序变量必须加df1$。3)-负号意思是倒序排序。4)na.last=TRUE缺失值放在最后

4、重命名

重命名第2列

colnames(df5)[2] <- 'GENDER'

所有列重命名

names(df5) <- c("AGE","GENDER")

注意:c(“AGE”,“GENDER”)的维数要与df5相同。

5、转换数据类型

df$age <- as.character(df$age) # 变成字符型
df$age <- as.numeric(df$age) # 变成数值型
df$age <- as.logical(df$age) # 变成逻辑型

变成因子型

x <- c("F","M","X","M")
as.factor(x)
y <- c(1,3,2,5)
as.factor(y)

判断数据类型

is.numeric() 
is.logical() 
is.charactor() 
is.factor() 

6、缺失值处理

查看缺失值(注意:is.na只能判断数值型缺失,字符型无法判断)

is.na(df[c("age","ANYLIMIT")]) 
# 或者
is.na(df[,1:2])

删除有缺失值的行(同样只针对数值型缺失)

df2 <- na.omit(df2) # 只要有数值型缺失,就删
 # 或者
df2 <- df2[!is.na(df2["EXPENDOP"]),] # 删除EXPENDOP缺失的行

注意:逗号不可省略!表示依然保持原先的列,否则会变成一维数组

缺失值用0填充

df[is.na(df)] <- 0

把某些特殊标记改为缺失值

df$AGE[df$AGE == 9999] <- NA

7、日期

df$DATE <- as.Date(df$DATE, "%Y/%m/%d")

8、计算长度和维度

length(x) # 长度
dim(x) # 长宽维度

注:如果是2 * 2矩阵,length返回4;``返回长宽,2 * 2矩阵,dim返回2 2

9、创建有序型因子

status<-c("Poor","Improved","Excellent","Poor")
df <- data.frame(status,stringsAsFactors=TRUE) # 因子转换为数据框
df$status<-factor(df$status,order=TRUE,levels=c("Poor","Improved","Excellent"))# 有序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值