1
我有R中的列表:在随机位置的列表添加字符元素R中
cls <- list(S1 = c("Start", "K1", "K2", "K1", "Buy"),
S2 = c("Start", "K1", "K3", "K3", "K2", "Defer"),
S3 = c("Start", "K1", "K2", "K2", "K3", "Defer"),
S4 = c("Start", "K1", "K3", "K3", "K1", "Defer"))
现在我想“K2”添加到两个元素在“开始”之间的随机位置和“购买“/” 推迟”。
我的做法至今:选择行里添加了“K2”:
set.seed(1234)
idx <- sample(4, 2)
[1] 1 2
所以我想在1线插入和2.要确定的位置,我这样做:
a <- sapply(cls, length)
set.seed(1234)
lapply(a, FUN=function(x) x-sample(1:x-1, 1))
$`1`
[1] 4
$`2`
[1] 2
所以,现在我有一个列表添加(1和2)中的元素以及这些行(4和2)中的哪个位置的行。
我发现insert
来自包R.utils
可能是有用的,但我不知道如何应用它,而不使用循环。 This
x <- insert(cls[[1]], ats=c(4), values="K2")
适用于我想要插入的第一个元素。如何将插入功能应用于我的所有列表项目?