所以我在 R 中有一个数据框,其中包含整数、NA 和单元格内的随机字符串分类。每个单元格只有一种数据类型。我想知道的是如何将所有包含字符串的单元格更改为 NA。知道我该怎么做吗?
最佳答案
如果您的数据框 (df) 实际上是除 NA 和垃圾之外的所有整数,那么以下内容将对其进行转换。
df2 <- data.frame(lapply(df, function(x) as.numeric(as.character(x))))
您会收到有关由强制转换引入的 NA 的警告,但这只是所有那些变成 NA 的非数字字符串。
下面的代码也可以工作,而且更简洁但运行速度较慢。
df2 <- apply(df, 2, function(x) as.numeric(as.character(x)))
如果您只想转换选定的列,那么您可以使用稍微复杂一些的命令。首先,您需要确定要转换的列。也许您将它们保存为您希望更改的列的逻辑向量。
df2 <- cbind(df[,!columnsToChange], apply(df[,columnsToChange], 2, function(x) as.numeric(as.character(x)))
这会使事情变得困惑,但它会让你很容易得到你想要的东西。
关于string - 从 R 中的数据框中删除所有字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3460825/