R列表-合并具有相同名称的元素

时间:2019-07-13 15:42:30

标签: r list

我在R中有一个列表:

A = list(c(1,4), 2, 3, c(1,4))

names(A) <- c("name 1", "name 2", "name 2", "name 3")

$`name 1`
[1] 1 4

$`name 2`
[1] 2

$`name 2`
[1] 3

$`name 3`
[1] 1 4

我要合并具有相同名称的列表元素。输出看起来像这样

$`name 1`
[1] 1 4

$`name 2`
[1] 2 3

$`name 3`
[1] 1 4

我将如何实现?

1 个答案:

答案 0 :(得分:4)

一种选择是在names unlistlist中将tapply用作分组变量,并在tapply(unlist(A, use.names = FALSE), rep(names(A), lengths(A)), FUN = c) #$`name 1` #[1] 1 4 #$`name 2` #[1] 2 3 #$`name 3` #[1] 1 4 中使用它来串联属于同一组的元素

split

或使用split(unlist(A, use.names = FALSE), rep(names(A), lengths(A)))

stack

或带有splitwith(stack(A), split(values, ind)) 的紧凑选项

unique

或循环浏览'A'的==名称,执行name选择属于同一lapply(unique(names(A)), function(x) unlist(A[x== names(A)], use.names = FALSE)) 的'A'元素

osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "t" using command down'

osascript -e 'tell app "Terminal" to do script "./script.sh" in window 1'