繁体   English   中英

在 r 中重塑和重新排列数据框

[英]Reshape and rearrange data frame in r

Year = c(2013, 2013, 2014, 2014, 2015, 2014, 2013, 2015, 2015);districts = c("A", "B", "C", "B","A", "A", "C" ,"C","B"); sex = c("M"," F", "M", "F","M"," F","M", "F", "F"); age = c("age1",'age2', 'age3','age4', "age5","age6", "age7","age8","age8");df = data.frame(Year, districts, sex, age); df

我想采用以下格式:

Year = c(2013, 2013, 2013, 2014, 2014, 2014, 2015, 2015, 2015); districts = c("A", "B", "C", "A","B", "C", "A" ,"B","C"); sex = c("M"," F", "M", "F","F"," M","M", "F", "F"); age = c("age1",'age2', 'age3','age4', "age5","age6", "age7","age8","age8");df = data.frame(Year, districts, sex, age) ;df

我们可以arrange列,然后检查 'age' 中的下一个值是否与当前值相同

library(dplyr)
res <- df %>% 
         arrange(Year, districts) %>% 
         mutate(age = paste0('age', cumsum(c(TRUE, age[-1] != age[-n()]))))


all.equal(res, out)
#[1] TRUE

注意:删除原始数据集 ('df') 和预期输出 ('out') 中的 'sex' 列中的空格后。 此外,转换为character类以便于比较

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM