【发布时间】:2023-01-11 23:42:30
【问题描述】:
我有一个数据框列表,目前正在使用以下 for 循环:
for (i in 1:length(genotypeGOI)){
genotypeGOI[[i]]$SEQSTRAND <- '*'
}
但我真的很想学习如何正确使用 lapply 。
我已经使用 mutate 函数尝试了许多不同的选项,但没有任何东西能满足我的需求。我最近的尝试是:
genotypeGOI <- lapply(X = genotypeGOI, FUN = function(x){
x <- x$SEQSTRAND, '*')
})
但这给了我一个错误:
Error: unexpected ',' in:
"genotypeGOI <- lapply(X = genotypeGOI, FUN = function(x){
x <- x$SEQSTRAND,"
基本上我想知道如何使用 lapply 更改列表中每个数据框的特定列中的值,而不真正关心这个特定问题。
我查看了与此相关的其他已发布问题,最相似的问题是创建一个函数并在 lapply 中调用它,但我真的不想为单行代码这样做。
谢谢
【问题讨论】:
-
它给你什么错误?如果您包含一个简单的 reproducible example 以及可用于测试和验证可能的解决方案的示例输入和所需的输出,则可以更轻松地为您提供帮助。
-
或者我猜问题是您没有为
mutate中的列分配任何内容。而不是x <- x %>% mutate_at(vars(SEQSTRAND), '*'),做x %>% mutate(SEQSTRAND='*') -
我不是在寻找这个具体的例子。我只是想看看如何将 for 循环转换为 lapply。我无法弄清楚如何使用 lapply 修改列表中每个数据框中的特定列。我似乎无法使用 x$ 语法。
-
您的示例根本不使用
x$,因此不清楚问题出在哪里。使用x$SEQSTRAND <- '*'; x也可能有效(同样,如果没有可重现的示例,很难判断)。您只需要确保在末尾有x,以便函数返回整个 data.frame。 -
当我使用:genotypeGOI <- lapply(X = genotypeGOI, FUN = function(x){ x <- x$SEQSTRAND, '*') }) 我收到错误:错误:意外',' in:“genotypeGOI <- lapply(X = genotypeGOI, FUN = function(x){ x <- x$SEQSTRAND," 我也将这个添加到问题中