我有 R 中的数据帧列表。列表中的所有数据帧都具有相同的大小。然而,元素可以是不同类型的。例如,
我想将函数应用于数据框的相应元素。例如,我想使用粘贴功能来生成一个数据框,例如
"1a" "2b" "3c"
"4d" "5e" "6f"
在 R 中是否有一种简单的方法可以做到这一点。我知道可以使用 Reduce 函数将函数应用于列表中数据帧的相应元素。但在这种情况下使用Reduce函数似乎并没有达到预期的效果。
Reduce(paste,l)
生产:
"c(1, 4) c(\"a\", \"d\")" "c(2, 5) c(\"b\", \"e\")" "c(3, 6) c(\"c\", \"f\")"
想知道我是否可以在不编写混乱的 for 循环的情况下做到这一点。任何帮助表示赞赏!
代替Reduce
, use Map
.
# not quite the same as your data
l <- list(data.frame(matrix(1:6,ncol=3)),
data.frame(matrix(letters[1:6],ncol=3), stringsAsFactors=FALSE))
# this returns a list
LL <- do.call(Map, c(list(f=paste0),l))
#
as.data.frame(LL)
# X1 X2 X3
# 1 1a 3c 5e
# 2 2b 4d 6f
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)