我想删除 data.frame 中单元格的单个值。该值是一个因子(数字)
我试图访问这样的值:
which(colnames(df) == "variable.name")
which(rownames(df) == "row.name")
df[i, j] <- NULL
我还试图通过 <-is.na 制作 NA,但效果不佳。我该怎么做?
NULL 和 NA 之间存在显着差异。
NULL
是一个对象,通常用来表示变量不包含对象。
NA
是一个通常表示“此处缺少数据项”的值。
总的来说,数据帧是等长向量的列表。R 列表是可以包含其他对象的对象,而 R 向量是只能包含值的对象。因此,您可以拥有 NULL 列表,但不能拥有 NULL 向量。
在您的示例中,您尝试将 NULL 对象放入矢量对象(df$j
或df[,j]
或df[[j]]
)中,该对象是数据框的一部分。由于矢量对象不能包含其他对象(仅值),因此分配失败。
如评论中所述,df[i, j] <- NA
将在所需位置的数据框中放置一个 NA 值。这可能是表示空虚的最佳方式。
感谢您分享您的代码。我试过了,但我遇到了一些错误。我尝试将单元格值从“无”更改为 NA,然后将变量转换为数字:
levels(data$Impact.Factor)
which(colnames(data) == "Impact.Factor")
#which(rownames(data) =="None" )--> did not work
which(grepl("None", data$Impact.Factor))
#df[row,column] <- NA
data[ 203,12] <- NA
data$Impact.Factor<-as.numeric(data$Impact.Factor)