【发布时间】:2016-08-11 02:09:31
【问题描述】:
我正在尝试拆分数据框,在每个数据框列表对象中创建一个新变量,然后重新组装(取消拆分)原始数据框。
对于变量Type 中的每个因子水平,我尝试创建的新变量将变量B.2 从0 缩放到1。
BWRX$B.2 <- BWRX$B #Create a new version of B
BWRX.Split <- split(BWRX, BWRX$Type) #Split by Type
BWRX.Split.BScaled <-lapply(BWRX.Split, function(df){df$B.3 <- (df$B.2-min(df$B.2))/(max(df$B.2)-min(df$B.2))}) #Scale B.2
上面的代码返回一个列表,其中B.2 的值在每个因子级别内正确缩放。棘手的部分是我无法弄清楚如何将此变量添加到BWRX.Split 中的每个数据帧。
我认为df$B.3 会纠正这一点,但事实并非如此。一旦B.3 是每个数据帧的一部分,unsplit(, Type) 可以用来重新组装数据帧还是do.call 会更好?我试图将 unsplit 和 split 结合起来,以便所有内容都在一行中进行编码。有没有更有效的方法?
【问题讨论】:
-
请提供reproducible example 以明确输入是什么以及所需的输出是什么。
标签: r dataframe data-manipulation