在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"))