繁体   English   中英

如何满足R中数据帧的丢失单元格?

[英]How to fulfill missing cells of a data frame in R?

我有一个像这样的数据集。

df = data.frame( name= c("Tommy", "John", "Dan"), age = c(20, NA, NA) )

我尝试将John和Dan设置为15岁。

df[ ( df$age != 20) , ]$age = 15

但是我得到如下错误

[<-。data.frame( tmp ,(df $ age!= 20),,value = list(name = c(NA_integer_,::数据帧的下标分配中不允许缺少值)

为这些丢失的单元格设置新值的好方法是什么?

尝试这个:

df$age[is.na(df$age)] <- 15

或使用您的语法样式:

df[is.na(df$age), ]$age = 15

由于df$age != 20产生以下错误,因此出现以下错误:

[1] FALSE    NA    NA

在逻辑语句中, 年龄列中的NA值未正确解释为不等于20。

我们可以使用is.na

library(data.table)
setDT(df)[is.na(age), age:= 15]

如果要修改所有非20的单元格,包括年龄的其他有效值,请执行以下操作:

# Creating a data frame with another valid age
df = data.frame( name= c("Tommy", "John", "Dan","Bob"), age = c(20, NA, NA,12) )

# Substitute values different than 20 for 15
df[df$age!=20 | is.na(df$age),"age"] <- 15

   name age
1 Tommy  20
2  John  15
3   Dan  15
4   Bob  15

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM