我有一个字符串列表,我想循环到每一个。
主要问题是列表是这样的
list <- list("word", "word", "two, word", "word")
我的尝试是使包含两个单词的项成为它自己的列表。即:
list <- list("word", "word", ["two", "word"], "word")
为了做到这一点,我想循环并重新赋值。
现在我成功地在第一层循环了没有问题
list <- list("word", "word", "two, word", "word")
当尝试遍历第二层时会出现这个问题。
请参阅下面的代码。从技术上讲,这两种方法应该返回相同的项,但由于某种原因,它们没有返回相同的项。
输入图片描述
我期待这两种技术IE
for(j in 1:length(TacticList[i])){
for(k in 1:length(TacticList[i][j])){
print(TacticList[i][j][k])
}
}
和
for (element in TacticList[i]){
for (thing in element){
print(thing)
}
返回相同的值。
虽然在我目前的情况下,我需要第一种技术返回由第二种技术给出的值。考虑到第一种技术是指针,它将对我重新分配数据很有用。
我们可以做
lapply(list, (x) unlist(strsplit(x, ",\s+")))
与产出
[[1]]
[1] "word"
[[2]]
[1] "word"
[[3]]
[1] "two" "word"
[[4]]
[1] "word"
我不确定多for
的事情,但也许这是有效的:
L <- list("word", "word", "two, word", "word")
out <- rapply(L, strsplit, split = "[, ]+", how = "replace")
str(out)
# List of 4
# $ :List of 1
# ..$ : chr "word"
# $ :List of 1
# ..$ : chr "word"
# $ :List of 1
# ..$ : chr [1:2] "two" "word"
# $ :List of 1
# ..$ : chr "word"