我的數據框包含以下內容:替代dlply R中
data$Value data$Name
774 Name1
770 Name1
778 Name1
804 Name1
804 Name1
802 Name1
804 Name1
900 Name2
905 Name2
805 Name2
900 Name2
950 Name2
860 Name2
870 Name2
etc... etc... for 100 Names
因此,每個名稱具有關聯7個值。我想通過變量「名稱」對這個數據框進行分組,將它分開,並將這些名稱的7個值作爲列表返回。這是我所希望輸出的格式:
my_list$Name1 =
[[1]]
[1] 774 770 778 804 804 802 804
my_list$Name2 =
[[1]]
[1] 900, 905, 805, 900, 950, 860, 870
etc...
最簡單的解決方法是使用plyr的dlply
功能:
my_list <- dlply(data, "Name", function(x) list(x$Value))
不過,我想盡量避免使用plyr。什麼會是一個很好的選擇?我曾考慮拆分我的數據的方式如下:
splits <- function(x) {
y <- subset(data, select = c(Name, Value))
splits <- split(y, y$Name)
return(splits)
}
my_list <- splits(data)
然而,這仍然返回我的格式如下列表:
Value Name
(dbl) (chr)
1 774 Name1
2 770 Name1
3 778 Name1
4 804 Name1
5 804 Name1
6 802 Name1
7 804 Name1
UPDATE:SOLUTION:
my_list <- lapply(split(data$Value, data$Name), list)
也許'lapply(分割(DD $值, dd $ Name),list)' –