1

我想删除 data.frame 中单元格的单个值。该值是一个因子(数字)

我试图访问这样的值:

which(colnames(df) == "variable.name")
which(rownames(df) == "row.name")

df[i, j] <- NULL

我还试图通过 <-is.na 制作 NA,但效果不佳。我该怎么做?

4

2 回答 2

1

NULL 和 NA 之间存在显着差异。

NULL是一个对象,通常用来表示变量不包含对象。

NA是一个通常表示“此处缺少数据项”的值。

总的来说,数据帧是等长向量的列表。R 列表是可以包含其他对象的对象,而 R 向量是只能包含值的对象。因此,您可以拥有 NULL 列表,但不能拥有 NULL 向量。

在您的示例中,您尝试将 NULL 对象放入矢量对象(df$jdf[,j]df[[j]])中,该对象是数据框的一部分。由于矢量对象不能包含其他对象(仅值),因此分配失败。

如评论中所述,df[i, j] <- NA将在所需位置的数据框中放置一个 NA 值。这可能是表示空虚的最佳方式。

于 2013-11-03T22:10:14.970 回答
0

感谢您分享您的代码。我试过了,但我遇到了一些错误。我尝试将单元格值从“无”更改为 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)
于 2019-07-16T22:28:23.503 回答