【发布时间】:2012-12-03 05:36:49
【问题描述】:
假设我有一个data.frame,它完全是numeric。如果我将第一列的一个条目设为character(例如),那么整个第一列将变为character。
问题:我该如何扭转这种情况。也就是说,我如何使data.frame 中的任何character 对象“显然”为numeric 对象被强制为numeric?
MWE:
test <- data.frame(matrix(rnorm(50),10))
is(test[3,1])
test[1,1] <- "TEST"
is(test[3,1])
print(test)
因此,我的目标是从 test 现在的状态转变为 test[2:10] 是 numeric 的状态。所以我想我要的是一个在整个data.frame 上执行此操作的函数。
【问题讨论】:
-
R 数据框中的一列只能有一种类型,因此如果您将一个字符串放入“TEST”之类的字符串,它会强制将整个列更改为一个字符串。您可以使用
test$X1 <- as.numeric(test$X1),但请注意,由于“TEST”不是“明显数字”,它将被转换为NA。否则,您可以在将它们分配给数据框之前确保它们是数字的:test[1, 1] <- as.numeric("TEST")
标签: r casting dataframe numeric