2015-06-04 77 views
2

我有一個數據幀列表,我需要將每個數據幀中的某個變量轉換爲因子。更改列表中的R數據幀的變量類型

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循環做到這一點,但我不想訴諸於此。

+2

像'TMP < - lapply(myList中,函數(X){X [, 「B」] < - 因子(X [, 「B」]); x}); str(TMP)'可能 –

+1

謝謝!這正是我需要的。 – Antti

回答

0

每從大衛Arenburg評論,該解決方案應該工作:

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