R语言 有人能解释一下为什么一个在列表中循环而另一个没有?

xmakbtuz  于 2023-04-09  发布在  其他
关注(0)|答案(2)|浏览(261)

我有一个字符串列表,我想循环到每一个。
主要的问题是名单是这样的

list <- list("word", "word", "two, word", "word")

我的尝试是使项目与两个字的一个列表。即:

list <- list("word", "word", ["two", "word"], "word")

所以为了做到这一点,我想循环并重新分配东西。
现在我设法在第一级循环没有问题

list <- list("word", "word", "two, word", "word")

当试图循环通过第二层时出现问题。
技术上这两种技术应该返回相同的项,但由于某种原因,它们没有。
enter image description here
我期待这两种技术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)
    }

返回相同的值。
虽然在我目前的情况下,我需要第一种技术来返回第二种技术给出的值。考虑到第一种技术作为指针,它将对我重新分配数据很有用。

h7wcgrx3

h7wcgrx31#

我们可以

lapply(list, \(x) unlist(strsplit(x, ",\\s+")))
  • 输出
[[1]]
[1] "word"

[[2]]
[1] "word"

[[3]]
[1] "two"  "word"

[[4]]
[1] "word"
fjaof16o

fjaof16o2#

我不确定多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"

相关问题