在R中将行值转换为单独的列

在R中将行值转换为单独的列,r,data-cleaning,R,Data Cleaning,我有一个数据集,它提取感兴趣的变量,但将它们按行排列,而理想情况下,它们将位于单独的列中。看起来像这样 大地水准面名称变量值 00601 ZCTA5 00601 PCT023003 17285 2 00601 ZCTA5 00601 PCT023004 572 3 00601 ZCTA5 00601 PCT023006 5 4 00601 ZCTA5 00601 P004001 18570 5 00602 ZCTA5 00602 PCT023003 35980 6 00602 ZCTA5 006

我有一个数据集,它提取感兴趣的变量,但将它们按行排列,而理想情况下,它们将位于单独的列中。看起来像这样

大地水准面名称变量值
00601 ZCTA5 00601 PCT023003 17285
2 00601 ZCTA5 00601 PCT023004 572
3 00601 ZCTA5 00601 PCT023006 5
4 00601 ZCTA5 00601 P004001 18570
5 00602 ZCTA5 00602 PCT023003 35980
6 00602 ZCTA5 00602 PCT023004 2210
7 00602 ZCTA5 00602 PCT023006 22
8 00602 ZCTA5 00602 P004001 41520


我想让4个变量代表4列,所有列都与唯一的ZCTA5值相关联。如何转换数据以符合该描述。很抱歉措辞不当。

我们可以从
tidyr

library(tidyr)
pivot_wider(df1, names_from = VARIABLE, values_from = VALUE)
# A tibble: 2 x 6
#  GEOID NAME        PCT023003 PCT023004 PCT023006 P004001
#  <int> <chr>           <int>     <int>     <int>   <int>
#1   601 ZCTA5 00601     17285       572         5   18570
#2   602 ZCTA5 00602     35980      2210        22   41520
library(tidyr)
枢轴(df1,名称从=变量,值从=值)
#一个tibble:2x6
#大地水准面名称PCT023003 PCT023004 PCT023006 P004001
#                           
#1601 ZCTA5 00601 17285 572 5 18570
#2 602 ZCTA5 00602 35980 2210 22 41520
数据
df1您是否可以显示示例的
dput
,期望doutputI需要一组标题为(PCT0230023、PCT023004等)的新列,其关联值在值列中表示
df1 <- structure(list(GEOID = c(601L, 601L, 601L, 601L, 602L, 602L, 
602L, 602L), NAME = c("ZCTA5 00601", "ZCTA5 00601", "ZCTA5 00601", 
"ZCTA5 00601", "ZCTA5 00602", "ZCTA5 00602", "ZCTA5 00602", "ZCTA5 00602"
), VARIABLE = c("PCT023003", "PCT023004", "PCT023006", "P004001", 
"PCT023003", "PCT023004", "PCT023006", "P004001"), VALUE = c(17285L, 
572L, 5L, 18570L, 35980L, 2210L, 22L, 41520L)),
class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8"))