【发布时间】:2014-07-17 21:12:56
【问题描述】:
我正在处理一个导致一些问题的大型数据集,因为数据集中的某些列被视为因素。如何将所有列从因子转换为数字,而不必逐列执行?
我尝试应用一个小循环,但它返回 NA 值。以下是适用于该案例的示例数据:
data <- structure(list(v1 = c(22.394, 43.72, 58.544, 56.877, 1.659, 29.142,
67.836, 68.851), v2 = c(144.373, 72.3, 119.418, 112.429, 35.779,
41.661, 166.941, 126.548), v3 = structure(c(33L, 29L, 33L, 5L,
13L, 31L, 5L, 8L), .Label = c("", "#VALUE!", "0", "1", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "2", "20",
"21", "22", "23", "24", "25", "26", "28", "29", "3", "30", "32",
"33", "4", "48", "5", "6", "7", "8", "9"), class = "factor"),
v4 = structure(c(24L, 6L, 22L, 23L, 16L, 22L, 23L, 26L), .Label = c("",
"-1", "-2", "-4", "#VALUE!", "0", "1", "10", "11", "12",
"13", "14", "15", "16", "17", "18", "19", "2", "24", "28",
"29", "3", "4", "5", "6", "7", "8", "9"), class = "factor")), .Names = c("v1",
"v2", "v3", "v4"), row.names = c("4", "5", "6", "7", "8", "9",
"10", "11"), class = "data.frame")
for (i in 1:ncol(data)){
data[,i] <- as.numeric(as.character(data[i]))
} ## returns NAs
我可以应用一些命令将所有这些列转换为数字类吗?
【问题讨论】:
-
你的循环不起作用,因为你有
data[i]而不是data[,i]。 -
或者使用“[[”,这将返回rhw因子向量而不是列表中的因子。
标签: r class dataset multiple-columns