[英]How do I reshape this data?
希望有人可以帮助我。
我有这个数据集:
我想像这样生产一个 dataframe :
我已经尝试了很多不同的方法,使用 tidyverse、baseR 来做到这一点,但我似乎找不到解决方案。
有人可以帮忙吗?
也许像
df %>% pivot_longer(cols = -Subject, names_to = c("Gender", "Age"), names_sep = "_")
但是没有任何可粘贴的样本数据,很难检查。
请阅读如何提出一个好问题以及如何给出一个可重复的例子。 以屏幕截图的形式共享数据不是获得帮助的正确方式。
为了重现性,我手动创建了一个与您的数据相似的示例数据集。
df <- data.frame(Subject = c('ID986', 'ID407'), M_22_25 = c(4, 5),
M_31_35 = NA, F_31_35 = NA, M_26_30 = c(2, 3))
df
# Subject M_22_25 M_31_35 F_31_35 M_26_30
#1 ID986 4 NA NA 2
#2 ID407 5 NA NA 3
您可以使用tidyr::pivot_longer
来获取所需结构中的数据。
tidyr::pivot_longer(df,
cols = -Subject,
names_to = c('Gender', 'Age'),
names_pattern = '(M|F)_(.*)',
values_drop_na = TRUE)
# Subject Gender Age value
# <chr> <chr> <chr> <dbl>
#1 ID986 M 22_25 4
#2 ID986 M 26_30 2
#3 ID407 M 22_25 5
#4 ID407 M 26_30 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.