2
我有一個數據框的名稱和值必須轉換成矢量列表。名稱決定了每個值必須分配在哪個向量中。爲了使自動化我的列表的創建,我使用tapply:如何將列表中的類從數組更改爲列表?
d_df <- data.frame(name=c(rep("a",5),rep("b",5)),value=LETTERS[1:10])
d_list_auto <- tapply(d_df$value,d_df$name, FUN=as.character)
d_list_auto <- unname(d_list_auto)
d_list_manual <- list(LETTERS[1:5],LETTERS[6:10])
對於實際效果,d_list_auto和d_list_manual都是一樣的東西,但是他們班是不同的(和功能,而我通過列表抱怨它)。
class(d_list_auto) #array
class(d_list_manual) #list
我試圖強迫與as.list()和應用功能無濟於事的不同口味的類別改變:
class(as.list(d_list_auto)) #array
apply(d_list_auto,1,as.list) #Creates a list of lists
我怎麼能強迫d_list_auto到類列表不失的結構我的數據?
編輯
一個非常討厭的解決方案:
class(apply(d_list_auto,1,as.list)) #list
有人做過一個更優雅的建議?
手動做'lapply(分裂(),...)'可能是另一種選擇,但我認爲這將需要'unname' d完全匹配輸出。 – joran