我想更改R函数输出的名称以反映输入的不同字符串。这是我尝试过的:
kd = c("a","b","d","e","b")
test = function(kd){
return(list(assign(paste(kd,"burst",sep="_"),1:6)))
}
这只是一个简单的测试功能。我收到了警告(这对我来说同样糟糕):
Warning message:
In assign(paste(kd, "burst", sep = "_"), 1:6) :
only the first element is used as variable name
理想情况下,我会得到像a_burst = 1,b_burst = 2这样的输出,但是我没有接近。
我想按向量的内容拆分数据框,并能够根据该向量中的名称命名所有内容,类似于
How to split a data frame by rows, and then process the blocks?
但并不完全。命名是必要的。
答案 0 :(得分:3)
这样的事,也许?
kd = c("a","b","d","e","b")
test <- function(x){
l <- as.list(1:5)
names(l) <- paste(x,"burst",sep = "_")
l
}
test(kd)
答案 1 :(得分:2)
您可以通过setNames使用向量而不是列表:
t1_6 <- setNames( 1:6, kd)
t1_6
a b d e b <NA>
1 2 3 4 5 6
> t1_6["a"]
a
1
再次查看这个问题,我想知道你是否愿意为字符向量分配顺序名称:
> a1_5 <- setNames(kd, paste0("alpha", 1:5))
> a1_5
alpha1 alpha2 alpha3 alpha4 alpha5
"a" "b" "d" "e" "b"