相关疑难解决方法(0)

将多组测量列(宽格式)整形为单列(长格式)

我有一个宽格式的数据帧,在不同的日期范围内重复测量.在我的例子中,有三个不同的时期,都有相应的值.例如,第一测量(Value1)是在测量期间从DateRange1StartDateRange1End:

ID DateRange1Start DateRange1End Value1 DateRange2Start DateRange2End Value2 DateRange3Start DateRange3End Value3
1 1/1/90 3/1/90 4.4 4/5/91 6/7/91 6.2 5/5/95 6/6/96 3.3 
Run Code Online (Sandbox Code Playgroud)

我希望将数据重新整形为长格式,以便将DateRangeXStart和DateRangeXEnd列分组.因此,原始表中的1行在新表中变为3行:

ID DateRangeStart DateRangeEnd Value
1 1/1/90 3/1/90 4.4
1 4/5/91 6/7/91 6.2
1 5/5/95 6/6/96 3.3
Run Code Online (Sandbox Code Playgroud)

我知道必须有一种方法可以用reshape2/ melt/ recast/ 来做到这一点tidyr,但我似乎无法弄清楚如何以这种特殊方式将多组度量变量映射到单个值列集.

r reshape r-faq reshape2 tidyr

36
推荐指数
5
解决办法
1万
查看次数

使用多组度量列将数据帧重新整形为长格式

我有一个R数据帧,我readHTMLTable()XML包中使用从互联网上删除.该表看起来像以下摘录,包含人口和年份的多个变量/列.(请注意,年份不会跨列重复,并表示填充的唯一标识符.)

        year1   pop1      year2   pop2     year3   pop3     
1                                                        
2       16XX    4675,0    1900    6453,0    1930   9981,2       
3       17XX    4739,3    1901    6553,5    1931   ...      
4       17XX    4834,0    1902    6684,0    1932   
5       180X    4930,0    1903    6818,0    1933        
6       180X    5029,0    1904    6955,0    1934        
7       181X    5129,0    1905    7094,0    1935
8       181X    5231,9    1906    7234,7    1936
9       182X    5297,0    1907    7329,0    1937
10      182X    5362,0    1908    7422,0    1938
Run Code Online (Sandbox Code Playgroud)

我想将数据重新组织成两列,一列是一年,另一列是人口,如下所示:

        year    pop     
1                                                        
2       16XX    4675,0
3       17XX    4739,3  
4       17XX …
Run Code Online (Sandbox Code Playgroud)

r reshape dataframe reshape2

3
推荐指数
2
解决办法
234
查看次数

标签 统计

r ×2

reshape ×2

reshape2 ×2

dataframe ×1

r-faq ×1

tidyr ×1