gpt4 book ai didi

r - 使用 R 访问列表中的项目,在拆分和应用后组合

转载 作者:行者123 更新时间:2023-12-04 12:00:41 24 4
gpt4 key购买 nike

我刚刚开始使用 R 清理字符串的过程,到目前为止已经学到了很多东西。我坚持的当前项目的一部分(我认为)主要与引用列表中的值有关。我正在尝试拆分应用组合方法,但最终无法恢复到我想要的数据形式。

我已经尝试了 which() 的各种排列, unlist() , 和 any()但似乎无法得到我正在寻找的东西 - 所以我坐在这里,寻求你的帮助。谢谢。

我有一长串字符串......

> dput(x) 

list(c("ACETATE", "RINGERS"), "ACETYLCYSTEINE", c("ACETYLSALICYLIC",
"ACID"), "ADIRAMYCIN", c("ADRENALINE", "00003901"), "ALEMTUZUMAB")

> x

[[1]]
[1] "ACETATE" "RINGERS"

[[2]]
[1] "ACETYLCYSTEINE"

[[3]]
[1] "ACETYLSALICYLIC" "ACID"

[[4]]
[1] "ADIRAMYCIN"

[[5]]
[1] "ADRENALINE" "00003901"

[[6]]
[1] "ALEMTUZUMAB"

我已经编写了简单的代码来从列表中删除特定的单词...
bad.words <- c("ACID", "BASE", "HYDROCHOLIRDE", "STUFF")
a <- lapply(x, function(x) x %in% bad.words)

> a

[[1]]
[1] FALSE FALSE

[[2]]
[1] FALSE

[[3]]
[1] FALSE TRUE

[[4]]
[1] FALSE

[[5]]
[1] FALSE FALSE

[[6]]
[1] FALSE

我希望能够创建 z所以它是 x没有 bad.words .
> z

[[1]]
[1] "ACETATE" "RINGERS"

[[2]]
[1] "ACETYLCYSTEINE"

[[3]]
[1] "ACETYLSALICYLIC"

[[4]]
[1] "ADIRAMYCIN"

[[5]]
[1] "ADRENALINE" "00003901"

[[6]]
[1] "ALEMTUZUMAB"

最佳答案

你快到了:

lapply(x, function(z) z[! (z %in% bad.words)])

或者,你可以做
lapply(x, function(z) setdiff(z,bad.words))

这对我来说似乎更优雅。

关于r - 使用 R 访问列表中的项目,在拆分和应用后组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28702707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com