我在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
我将如何实现?
答案 0 :(得分:4)
一种选择是在names
unlist
后list
中将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
或带有split
和with(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'