R 行长不均匀的长格式计算
小背景,我对R还是新手,只是最近才学会用长格式格式化数据。但即使是现在,我也不确定我一直在做正确的事情 我已将数据导入数据帧列表R 行长不均匀的长格式计算,r,R,小背景,我对R还是新手,只是最近才学会用长格式格式化数据。但即使是现在,我也不确定我一直在做正确的事情 我已将数据导入数据帧列表 # after import, data looks something like this a <- data.frame(x = 1:50, y = rnorm(50), z = "A") b <- data.frame(x = 1:40, y = rnorm(40), z = "B") c <- data.frame(x = 1:2
# after import, data looks something like this
a <- data.frame(x = 1:50, y = rnorm(50), z = "A")
b <- data.frame(x = 1:40, y = rnorm(40), z = "B")
c <- data.frame(x = 1:20, y = rnorm(20), z = "C")
set <- list(a,b,c)
#导入后,数据如下所示
a这花了太长时间才找到答案,所以我将在这里为我和其他人发布它
综上所述,长格式对于使用ggplot绘制图形非常有用,而宽格式对于将函数应用到数据帧非常有用。不幸的是,我导入的数据具有不均匀的行长度,这使得转换到数据帧很麻烦
为了解决这个问题,我基本上需要一个cbind.fill,而不是使用rbind.fill导入,它并不存在。直到我发现它贴在这里:
我建议查看此类任务的dplyr
或data.table
包。有一个很好的介绍任何一个可在网上。使用ggplot()打印的最佳格式可能是从列表中生成一个数据帧。类似于dplyr
中的bind\u行(a、b、c)
就可以实现这个功能。然而,要给出一个具体的答案,这个问题有点模糊。您可以在dplyr
中使用groupby
,是的,如果您想快速了解如何做到这一点,请尝试以下方法:感谢yoland,bind\u rows
方法似乎给出了与上述相同的结果(t
)。为了重新措辞而不产生混乱,我正在寻找一种将长格式转换为宽格式的方法,使用具有不同NROW的数据帧。
require(ggplot2)
t <- as.data.frame(do.call(rbind.fill, set))
ggplot(t, aes(x = x, y = y, color = z)) + geom_line()