在列表中更改R数据框的变量类型

时间:2015-06-04 10:53:29

标签: r dataframe

我有一个数据帧列表,我需要将每个数据帧中的某个变量转换为因子。

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循环,但我不想诉诸于此。

1 个答案:

答案 0 :(得分:0)

根据David Arenburg的评论,这个解决方案应该有效:

TMP <- lapply(myList, function(x) {x[, "B"] <- factor(x[, "B"]) ; x}) ; str(TMP)