【发布时间】:2022-01-14 10:41:58
【问题描述】:
我有一个列表列表 testFrame,看起来像:
d1 <- data.frame(var1 = c(10, 7), var2 = c(20,2), var3 = c(30,1))
d2 <- data.frame(var1 = c(20,1), var2 = c(30,2), var3 = c(40,3))
testFrame <- list(d1, d2)
[[1]]
var1 var2 var3
1 10 20 30
2 7 2 1
[[2]]
var1 var2 var3
1 20 30 40
2 1 2 3
我想在每个列表中添加两个新行,如果它是列表中的第一列,则第 3 行将是第 1 行和第 2 行之间的最大值,第 4 行是最小值。否则,第三行将是上一列第四行的数字,第四行是该数字减去该列的最小数字。
结果应该是这样的:
[[1]]
var1 var2 var3
1 10 20 30
2 7 2 1
3 10 7 5
4 7 5 4
[[2]]
var1 var2 var3
1 20 30 40
2 1 2 3
3 20 1 -1
4 1 -1 -4
到目前为止,我已经
addRows<- lapply (testFrame,
function(x)
for(i in 1:3) {
if (i==1) {rbind.......}
else {
rbind(.........)
}
}
)
我不知道要在 rbind 中放入什么。
【问题讨论】:
-
您能否提供您的清单,以便我以它们为例?
-
使用
dput(x)提供您的数据