我有脚本,生成一些数据表,我想与其他列分开,并将结果存储在新列中的数据表。这是一个例子。r数据表除列的列第二个列列表
library(data.table)
dt <- data.table(V1 = c(5.553465, 4.989168, 2.563682, 6.987971, 19.220936),
V2 = c(4.248335, 19.768138, 3.840026, 17.411003, 17.939368),
V3 = c(9.683953, 15.344424, 11.729091, 7.534210, 5.404000),
V4 = c(5.949093, 4.553023, 9.765656, 11.211069, 4.085964),
V5 = c(11.814671, 5.460138, 2.492230, 1.48792, 8.164280))
list1 <- list(c("V1", "V2", "V3"))
list2 <- list(c("V2", "V4", "V5"))
listRatio <- list(c("rat1","rat2","rat3"))
我已经尝试了各种方法来将list1元素中的值除以list2元素中的值,但不成功。两个在下面;既不可行。
dt[, (listRatio) := list1/list2]
dt[, c("rat1","rat2","rat3") := mapply(dt, function(x,y) x/y, x = c(V1, V2, V3), y = c(V2, V4, V5))]
也许值得一提:在OP不应该在名单包裹这里... – Frank
我知道足够关于R现在从何时使用列表有点教程中受益字符变量以及何时使用向量,如果相关,则使用数据表焦点。任何人都可以添加一个链接到这样的教程? – JerryN
改进答案(至少对于我的目的)是使用'as.vector'作为列表并使用dt [,(listRatio):= Map('/',mget(list1),mget(list2) )]'。这会自动生成listRatio的所有元素的值。 – JerryN