a <- list( G1 = data.frame(age = "8", gender = "M"),
G2 = data.frame(age = c("10","11"), gender = c("M", "F")),
G3 = data.frame(age = c("9","6"), gender = c("F", "F")) )
如图所示,所有变量都输入为字符,然后我希望将age
恢复为数字,同时将gender
保留为字符。运行lapply
,结果令我非常困惑。怎么了?
lapply(a, function(x) {x[,1] <- as.numeric(x[,1])} )
$G1
[1] 1
$G2
[1] 1 2
$G3
[1] 2 1
答案 0 :(得分:1)
按照您的方法,您可以将第一列转换为数字,然后返回完整的数据框而不是仅返回一列。
a[] <- lapply(a, function(x) {
x[,1] <- as.numeric(as.character(x[,1]))
x
})