我有两列:一列是数字变量,另一列是分类变量。我如何制作它以便我的分类变量的n个类别有n列,每列中的数据是属于该类别的数值观察。请帮助,我已经尝试过查找但我找不到能够解决问题的功能。
谢谢!
答案 0 :(得分:1)
假设样本数据:
df = data.frame(x = c(3,6,1,3,8,2) , y = c(letters[1:4], 'c','a'))
df
# x y
#1 3 a
#2 6 b
#3 1 c
#4 3 d
#5 8 c
#6 2 a
df1 = data.frame(df$x* sapply(unique(df$y), function(x) as.numeric(grepl(x, df$y))))
colnames(df1) = unique(df$y)
# a b c d
#1 3 0 0 0
#2 0 6 0 0
#3 0 0 1 0
#4 0 0 0 3
#5 0 0 8 0
#6 2 0 0 0