【发布时间】:2015-07-16 16:41:35
【问题描述】:
我刚开始同时使用 apply 和 functions,我感到困惑和沮丧。我有 2 个不同的数据框列表,当满足与第二个相关的条件时,我需要向第一个添加一定数量的列。下面是第一个列表的结构,该列表具有任何站点的一个数据框,并且每个 df 具有每个压力的 2 列或更多列:
> str(KDzlambdaEG)
List of 3
$ 176:'data.frame': 301 obs. of 3 variables:
..$ 0 : num [1:301] 0.186 0.182 0.18 0.181 0.177 ...
..$ 5 : num [1:301] 0.127 0.127 0.127 0.127 0.127 ...
..$ 20: num [1:301] 0.245 0.241 0.239 0.236 0.236 ...
$ 177:'data.frame': 301 obs. of 2 variables:
..$ 0 : num [1:301] 0.132 0.132 0.132 0.13 0.13 ...
..$ 25: num [1:301] 0.09 0.092 0.0902 0.0896 0.0896 ...
$ 199:'data.frame': 301 obs. of 2 variables:
..$ 0 : num [1:301] 0.181 0.182 0.181 0.182 0.179 ...
..$ 10: num [1:301] 0.186 0.186 0.185 0.183 0.184 ...
另一方面,我有第二个列表,其中包含我需要在第一个列表的每个数据框的每一列之后添加的列数:
> str(dif)
List of 3
[[176]]
[1] 4 15 28
[[177]]
[1] 24 67
[[199]]
[1] 9 53
我已经尝试了很多东西,使用出现在以下位置的 append_col 函数: How to add a new column between other dataframe columns?
for (i in 1:length(dif)){
A<-lapply(KDzlambdaEG,append_col,rep(list(NA),dif[[i]][1]),after=1)
}
但到目前为止似乎没有任何效果......我已经在这里搜索过答案,但很难找到作为新人的具体答案。
【问题讨论】:
-
那么第一个数据框到底会有50列? 3 已经在那里,加上额外的
4+15+28+3? -
第一个 df 应该有 49 列:3 列已经存在加上:列“0”和列“5”之间有 4 列,列“5”和列“20”和 28 之间有 15 列在“20”列之后。
-
列
0到底是什么?为什么您会开始将其视为一个专栏? -
在海洋学中,我们使用“0”来表示零深度=表面(1 表示 1 米深度,依此类推)
-
"column 1" 是第二列