我有一个数据框列表,可以在其上执行lapply功能。目的是通过将行名与另一个参考数据框进行匹配来向每个数据框添加新列line
。这在不愉快的情况下效果很好:
symbol
但是在多次语法尝试中失败。我似乎得到的最接近的是:
df1$symbol <- dds$symbol[ match(rownames(df1), rownames(dds)) ]
或者:
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
答案 0 :(得分:1)
我们需要获取列表中“字符串”的值。 mget
根据标识符以字符串的形式从中返回“ data.frame”
lst1 <- mget(result_list)
然后遍历“ lst1”
lapply(lst1, function(x) {
x$symbol <- dds$symbol[ match(rownames(x), rownames(dds)) ]
x
})