我有一个要在其上执行lapply函数的数据帧列表。其目标是通过将行名与另一个引用数据帧进行匹配,将新列symbol添加到每个数据帧中。这在非lapply形式中非常有效:
df1$symbol <- dds$symbol[ match(rownames(df1), rownames(dds)) ]但是通过多次语法尝试在lapply中失败。我得到的最接近的似乎是:
result_list <- c("df1", "df2", "df3")
lapply(result_list, function(x) {
x$symbol <- dds$symbol[ match(rownames(x), rownames(dds)) ]
})
[[1]]
character(0)
[[2]]
character(0)
[[3]]
character(0)
Warning messages:
1: In x$symbol <- mcols(dds)$symbol[match(rownames(x), rownames(dds))] :
Coercing LHS to a list
2: In x$symbol <- mcols(dds)$symbol[match(rownames(x), rownames(dds))] :
Coercing LHS to a list
3: In x$symbol <- mcols(dds)$symbol[match(rownames(x), rownames(dds))] :
Coercing LHS to a list或者:
lapply(result_list, function(x) {
x[["symbol"]] <- dds$symbol[ match(rownames(x), rownames(dds)) ]
})
Error in x[["symbol"]] <- dds$symbol[ match(rownames(x), rownames(dds)) ] :
replacement has length zero
lapply(result_list, function(x) {
x[["symbol"]] <- dds[["symbol"]][ match(rownames(x), rownames(dds)) ]
})
Error in x[["symbol"]] <- dds[["symbol"]][ match(rownames(x), rownames(dds)) ] :
replacement has length zero发布于 2019-05-02 04:33:28
我们需要在一个列表中获取“字符串”的值。mget根据标识符以字符串的形式从返回'data.frame's
lst1 <- mget(result_list)然后循环访问“lst1”
lapply(lst1, function(x) {
x$symbol <- dds$symbol[ match(rownames(x), rownames(dds)) ]
x
})https://stackoverflow.com/questions/55942370
复制相似问题