我有一个数据帧列表,我需要将每个数据帧中的某个变量转换为因子。
E.g。
myList <- list(df1 = data.frame(A = sample(10), B = rep(1:2, 10)),
df2 = data.frame(A = sample(10), B = rep(1:2, 10))
)
让我们说变量B需要成为每个数据帧的因素。我试过这个:
TMP <- setNames(lapply(seq_along(myList), function(x) apply(myList[[x]][c("B")], 2, factor)), names(myList))
但它只返回转换后的变量,而不是我需要的整个数据帧。我知道如何使用for循环,但我不想诉诸于此。
答案 0 :(得分:0)
根据David Arenburg的评论,这个解决方案应该有效:
TMP <- lapply(myList, function(x) {x[, "B"] <- factor(x[, "B"]) ; x}) ; str(TMP)