我使用了dplyr包来总结一些数据。我制作的数据格式如下所示:
Iteration Degree Proportion
1 0 .5
1 30 .7
1 60 .8
2 0 .6
2 30 .9
3 0 .3
3 30 .8
3 60 .8我想把我的数据转换成一个新的数据格式,其中每个3度条件都是他们自己的列,并且相应的比例值被填充。,最重要的是,当迭代没有度值时,我需要计算'NA‘值。
我正在考虑的数据文件看起来应该是这样的:
Iteration 0_Degree 30_Degree 60_Degree
1 .5 .7 .8
2 .6 .9 NA
3 .3 .8 .8找出哪里需要填写NAs是我目前面临的主要挑战。
有人知道我该怎么做吗?
谢谢!
发布于 2018-06-28 17:01:54
这可以很容易地通过来自spread包的tidyr函数实现。tidyr是tidyverse的一部分。
只需使用:
library(tidyverse)
df %>%
spread(key = Degree, value = Proportion)填充缺失观测的默认选项是fill = 'NA'。
发布于 2018-06-28 17:06:15
如果不需要as.data.frame作为数据框架,则省略它。不使用包装。
as.data.frame(tapply(dd[[3]], dd[-3], c))给予:
0 30 60
1 0.5 0.7 0.8
2 0.6 0.9 NA
3 0.3 0.8 0.8备注
可复制形式的输入如下:
dd <- structure(list(Iteration = c(1L, 1L, 1L, 2L, 2L, 3L, 3L, 3L),
Degree = c(0L, 30L, 60L, 0L, 30L, 0L, 30L, 60L), Proportion = c(0.5,
0.7, 0.8, 0.6, 0.9, 0.3, 0.8, 0.8)), class = "data.frame", row.names = c(NA,
-8L))https://stackoverflow.com/questions/51087977
复制相似问题