想要将唯一值转换为第一/第二/第三变量 [英] Want to cast unique values into first/second/third variables
本文介绍了想要将唯一值转换为第一/第二/第三变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个需要转换为宽格式的数据集示例,但是我有一个尚未在StackOveflow上解决的特殊问题。
I have a sample of a dataset that needs to be cast into a wide format, but I have a particular issue that I haven't seen addressed on StackOveflow yet.
我想用来制作长数据集的列的每一行都有唯一的值,但是我想创建一个新的数据集,以便每个idvar的n个属性的n个变量。
The column that I'd like to use to make a long dataset has unique values for every single row, but I want to create a new dataset so that are n variables for n attributes for each idvar.
我需要转换为:
state sector attribute_value
alabama 1 a
alabama 1 b
alabama 1 c
alabama 1 d
alabama 1 e
alabama 1 f
alabama 1 g
alabama 1 h
alaska 1 i
alaska 1 j
alaska 1 k
alaska 1 l
alaska 1 m
alaska 1 n
alaska 1 o
arizona 1 p
arizona 1 q
arizona 1 r
arizona 1 s
arizona 1 t
arizona 1 u
arizona 1 v
进入:
state sector attribute_value_1 attribute_value_2 attribute_value_3 attribute_value_4 attribute_value_5 attribute_value_6 attribute_value_7 attribute_value_8
alabama 1 a b c d e f g h
alaska 1 i j k l m n o n/a
arizona 1 p q r s t u v n/a
到目前为止,我还无法使用dcast或重塑来创建此特定转换。
So far, I haven't been able to use dcast or reshape to create this particular transformation.
推荐答案
使用:
library(data.table)
dcast(setDT(df),
state + sector ~ rowid(state, prefix = 'attr_val_'),
value.var = 'attribute_value')
您将获得:
state sector attr_val_1 attr_val_2 attr_val_3 attr_val_4 attr_val_5 attr_val_6 attr_val_7 attr_val_8
1: alabama 1 a b c d e f g h
2: alaska 1 i j k l m n o NA
3: arizona 1 p q r s t u v NA
这篇关于想要将唯一值转换为第一/第二/第三变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文