我目前正在处理一个数据项目,需要压缩数据,以便数据框中的名称不重复.问题是名称在数据框中重复,因 for each 名称可以有多个ID代码.下面我附上了一个样本数据框架:
df_have <- data.frame(
Name = c("Maya", "Maya", "Sierra", "Sophia", "Sophia",
"Sophia", "Cecilia", "Cecilia"),
ID = c(24, 56, 54, 12, 15, 24, 12, 11)
)
df_have
#> Name ID
#> 1 Maya 24
#> 2 Maya 56
#> 3 Sierra 54
#> 4 Sophia 12
#> 5 Sophia 15
#> 6 Sophia 24
#> 7 Cecilia 12
#> 8 Cecilia 11
下面是转换为所需格式的示例:
df_want <- data.frame(
Name = c("Maya", "Sierra", "Sophia", "Cecilia"),
ID1 = c(24, 54, 12, 12),
ID2 = c(56, 0, 15, 11),
ID3 = c(0, 0, 24, 0)
)
df_want
#> Name ID1 ID2 ID3
#> 1 Maya 24 56 0
#> 2 Sierra 54 0 0
#> 3 Sophia 12 15 24
我正在使用R来转换数据.我try 过PIVOT_WIDTER命令,但只能使用它将数据转换为数据框,其中列"ID"中的值成为列名,而这些列中的值是虚拟变量,用于确定名称是否具有相应的ID号.这不是所希望的,因为ID代码太多,无法使数据可用(上面的数据只是一个示例).此外,它没有解决同名多行的问题,因为它只是增加了数据框的宽度,而没有对其进行压缩.