R 如何按所选行值创建新行
我有两个数据集需要连接,其中一个需要在R中修改 数据集如下所示:R 如何按所选行值创建新行,r,dataframe,R,Dataframe,我有两个数据集需要连接,其中一个需要在R中修改 数据集如下所示: age_min age_max female male ID value date 18 24 0 1 10 324 2018-02-05 18 24 1 0 10 241 2018-02-05 18 24
age_min age_max female male ID value date
18 24 0 1 10 324 2018-02-05
18 24 1 0 10 241 2018-02-05
18 24 1 1 10 152 2018-02-05
25 34 0 1 10 672 2018-02-05
25 34 1 0 10 580 2018-02-05
25 34 1 1 10 439 2018-02-05
35 44 0 1 10 523 2018-02-05
35 44 1 0 10 574 2018-02-05
35 44 1 1 10 678 2018-02-05
45 54 0 1 10 127 2018-02-05
45 54 1 0 10 756 2018-02-05
45 54 1 1 10 273 2018-02-05
55 64 0 1 10 xxx 2018-02-05
55 64 1 0 10 xxx 2018-02-05
55 64 1 1 10 xxx 2018-02-05
65+ NA 0 1 10 xxx 2018-02-05
65+ NA 1 0 10 xxx 2018-02-05
65+ NA 1 1 10 xxx 2018-02-05
18 24 0 1 10 123 2018-02-06
18 24 1 0 10 641 2018-02-06
18 24 1 1 10 901 2018-02-06
25 34 0 1 10 671 2018-02-06
25 34 1 0 10 421 2018-02-06
25 34 1 1 10 784 2018-02-06
35 44 0 1 10 856 2018-02-06
35 44 1 0 10 976 2018-02-06
35 44 1 1 10 1243 2018-02-06
45 54 0 1 10 745 2018-02-06
45 54 1 0 10 929 2018-02-06
45 54 1 1 10 781 2018-02-06
55 64 0 1 10 xxx 2018-02-06
55 64 1 0 10 xxx 2018-02-06
55 64 1 1 10 xxx 2018-02-06
65+ NA 0 1 10 xxx 2018-02-06
65+ NA 1 0 10 xxx 2018-02-06
65+ NA 1 1 10 xxx 2018-02-06
age_min age_max female male ID value date
18 24 0 1 10 324 2018-02-05
18 24 1 0 10 241 2018-02-05
18 24 1 1 10 152 2018-02-05
25 34 0 1 10 672 2018-02-05
25 34 1 0 10 580 2018-02-05
25 34 1 1 10 439 2018-02-05
35 44 0 1 10 523 2018-02-05
35 44 1 0 10 574 2018-02-05
35 44 1 1 10 678 2018-02-05
45 54 0 1 10 127 2018-02-05
45 54 1 0 10 756 2018-02-05
45 54 1 1 10 273 2018-02-05
55 64 0 1 10 xxx 2018-02-05
55 64 1 0 10 xxx 2018-02-05
55 64 1 1 10 xxx 2018-02-05
---------------------------------------------------------------------------
add 18 34 0 1 10 996 2018-02-05
18 34 1 0 10 821 2018-02-05
18 34 1 1 10 591 2018-02-05
18 44 0 1 10 1519 2018-02-05
18 44 1 0 10 1395 2018-02-05
18 44 1 1 10 1269 2018-02-05
18 54 0 1 10 xxxx 2018-02-05
18 54 1 0 10 xxxx 2018-02-05
18 54 1 1 10 xxxx 2018-02-05
18 65+ 0 1 10 xxxx 2018-02-05
18 65+ 1 0 10 xxxx 2018-02-05
18 65+ 1 1 10 xxxx 2018-02-05
---------------------------------------------------------------------------
18 24 0 1 10 123 2018-02-06
18 24 1 0 10 641 2018-02-06
18 24 1 1 10 901 2018-02-06
25 34 0 1 10 671 2018-02-06
25 34 1 0 10 421 2018-02-06
25 34 1 1 10 784 2018-02-06
35 44 0 1 10 856 2018-02-06
35 44 1 0 10 976 2018-02-06
35 44 1 1 10 1243 2018-02-06
45 54 0 1 10 745 2018-02-06
45 54 1 0 10 929 2018-02-06
45 54 1 1 10 781 2018-02-06
55 64 0 1 10 xxx 2018-02-06
55 64 1 0 10 xxx 2018-02-06
55 64 1 1 10 xxx 2018-02-06
---------------------------------------------------------------------------
add 18 34 0 1 10 794 2018-02-06
18 34 1 0 10 1062 2018-02-06
18 34 1 1 10 1685 2018-02-06
18 44 0 1 10 1650 2018-02-06
18 44 1 0 10 2038 2018-02-06
18 44 1 1 10 2928 2018-02-06
18 54 0 1 10 xxxx 2018-02-06
18 54 1 0 10 xxxx 2018-02-06
18 54 1 1 10 xxxx 2018-02-06
18 65+ 0 1 10 xxxx 2018-02-06
18 65+ 1 0 10 xxxx 2018-02-06
18 65+ 1 1 10 xxxx 2018-02-06
---------------------------------------------------------------------------
有许多不同的ID和日期,我想要得到的输出如下:
age_min age_max female male ID value date
18 24 0 1 10 324 2018-02-05
18 24 1 0 10 241 2018-02-05
18 24 1 1 10 152 2018-02-05
25 34 0 1 10 672 2018-02-05
25 34 1 0 10 580 2018-02-05
25 34 1 1 10 439 2018-02-05
35 44 0 1 10 523 2018-02-05
35 44 1 0 10 574 2018-02-05
35 44 1 1 10 678 2018-02-05
45 54 0 1 10 127 2018-02-05
45 54 1 0 10 756 2018-02-05
45 54 1 1 10 273 2018-02-05
55 64 0 1 10 xxx 2018-02-05
55 64 1 0 10 xxx 2018-02-05
55 64 1 1 10 xxx 2018-02-05
65+ NA 0 1 10 xxx 2018-02-05
65+ NA 1 0 10 xxx 2018-02-05
65+ NA 1 1 10 xxx 2018-02-05
18 24 0 1 10 123 2018-02-06
18 24 1 0 10 641 2018-02-06
18 24 1 1 10 901 2018-02-06
25 34 0 1 10 671 2018-02-06
25 34 1 0 10 421 2018-02-06
25 34 1 1 10 784 2018-02-06
35 44 0 1 10 856 2018-02-06
35 44 1 0 10 976 2018-02-06
35 44 1 1 10 1243 2018-02-06
45 54 0 1 10 745 2018-02-06
45 54 1 0 10 929 2018-02-06
45 54 1 1 10 781 2018-02-06
55 64 0 1 10 xxx 2018-02-06
55 64 1 0 10 xxx 2018-02-06
55 64 1 1 10 xxx 2018-02-06
65+ NA 0 1 10 xxx 2018-02-06
65+ NA 1 0 10 xxx 2018-02-06
65+ NA 1 1 10 xxx 2018-02-06
age_min age_max female male ID value date
18 24 0 1 10 324 2018-02-05
18 24 1 0 10 241 2018-02-05
18 24 1 1 10 152 2018-02-05
25 34 0 1 10 672 2018-02-05
25 34 1 0 10 580 2018-02-05
25 34 1 1 10 439 2018-02-05
35 44 0 1 10 523 2018-02-05
35 44 1 0 10 574 2018-02-05
35 44 1 1 10 678 2018-02-05
45 54 0 1 10 127 2018-02-05
45 54 1 0 10 756 2018-02-05
45 54 1 1 10 273 2018-02-05
55 64 0 1 10 xxx 2018-02-05
55 64 1 0 10 xxx 2018-02-05
55 64 1 1 10 xxx 2018-02-05
---------------------------------------------------------------------------
add 18 34 0 1 10 996 2018-02-05
18 34 1 0 10 821 2018-02-05
18 34 1 1 10 591 2018-02-05
18 44 0 1 10 1519 2018-02-05
18 44 1 0 10 1395 2018-02-05
18 44 1 1 10 1269 2018-02-05
18 54 0 1 10 xxxx 2018-02-05
18 54 1 0 10 xxxx 2018-02-05
18 54 1 1 10 xxxx 2018-02-05
18 65+ 0 1 10 xxxx 2018-02-05
18 65+ 1 0 10 xxxx 2018-02-05
18 65+ 1 1 10 xxxx 2018-02-05
---------------------------------------------------------------------------
18 24 0 1 10 123 2018-02-06
18 24 1 0 10 641 2018-02-06
18 24 1 1 10 901 2018-02-06
25 34 0 1 10 671 2018-02-06
25 34 1 0 10 421 2018-02-06
25 34 1 1 10 784 2018-02-06
35 44 0 1 10 856 2018-02-06
35 44 1 0 10 976 2018-02-06
35 44 1 1 10 1243 2018-02-06
45 54 0 1 10 745 2018-02-06
45 54 1 0 10 929 2018-02-06
45 54 1 1 10 781 2018-02-06
55 64 0 1 10 xxx 2018-02-06
55 64 1 0 10 xxx 2018-02-06
55 64 1 1 10 xxx 2018-02-06
---------------------------------------------------------------------------
add 18 34 0 1 10 794 2018-02-06
18 34 1 0 10 1062 2018-02-06
18 34 1 1 10 1685 2018-02-06
18 44 0 1 10 1650 2018-02-06
18 44 1 0 10 2038 2018-02-06
18 44 1 1 10 2928 2018-02-06
18 54 0 1 10 xxxx 2018-02-06
18 54 1 0 10 xxxx 2018-02-06
18 54 1 1 10 xxxx 2018-02-06
18 65+ 0 1 10 xxxx 2018-02-06
18 65+ 1 0 10 xxxx 2018-02-06
18 65+ 1 1 10 xxxx 2018-02-06
---------------------------------------------------------------------------
此示例来自一个ID,存在其他ID
我想对第18-24行和第25-34行的值求和以创建新行18-34,对第18-24行、第25-34行、第35-44行的值求和以创建第18-44行,重复类似步骤以获得18-54、18-65+
我已经通过Jon Spring提供的代码实现了我想要的。问题是代码value=sum(value)将汇总所有年龄组的值。为了解决这个问题,我去掉了我不想求和的年龄组,并计算出18-34,18-44,18-54,18-65+的总值。非常感谢你的帮助,乔恩 聚合,然后将上面的行绑定到底部。下面是data.table中的一次尝试:
df_summary <- df %>%
group_by(female, male, ID, date) %>%
summarize(age_min = min(age_min),
age_max = max(age_max),
value = sum(value))
df %>%
bind_rows(df_summary) %>%
arrange(date) # Edit to sort by date
我仍然不明白你想要实现什么:(我看不出第二个有什么变化frame@KenrySanchez-据我所知,第1行和第4行的值求和,然后是第2行和第5行,然后是第3行和第6行,其中
female/male/id/date
match.awwww我知道了。好的,让我试试看是否能给你一个解决方案。我想我以前在我的r工作室里做过这个。嗨,乔恩,我试过y我们的代码和它在某种程度上起作用。如果我有其他数据,我想知道如何按日期求和值?例如,一年的每日值?我不知道你的确切意思。要为一年中的每个日期添加总和,你可以将分组依据(女性、男性、ID、日期)%%>%
更改为分组依据(女性,男性,身份证,日期=润滑油::地板(日期,“1年”)%%>%%
…嗨,Jon,我更新了我的问题,也许你能更好地理解我的问题。更新了新的输出,唯一的变化是按日期排列。似乎符合所需的输出。哇,太酷了,如果我有其他年龄段,如35-44、45-54、55-64,那么如何选择年龄段呢?我的意思是可能不使用min(age_min)和max(age_max)您好,最近的邮件,我尝试了您的代码,它每天为每个ID生成一个值。但是,如果我将age_min和age_max更改为特定的数字,如age_min=18,age_max=34。输出值不是真的,事实上age_min和age_max没有更改输出值。那么,如果我想手动选择年龄组,该怎么办?