【发布时间】:2014-09-02 08:05:15
【问题描述】:
我正在尝试在 python 中执行以下命令:
test <- data.frame(convert_me=c('Convert1','Convert2','Convert3'),
values=rnorm(3,45, 12), age_col=c('23','33','44'))
test
library(reshape2)
t <- dcast(test, values ~ convert_me+age_col, length )
t
也就是说,这个:
convert_me values age_col
Convert1 21.71502 23
Convert2 58.35506 33
Convert3 60.41639 44
变成这样:
values Convert2_33 Convert1_23 Convert3_44
21.71502 0 1 0
58.35506 1 0 0
60.41639 0 0 1
我知道使用虚拟变量可以获取列的值并转换为列的名称,但是有没有办法像 R 那样轻松地合并它们(组合)?
【问题讨论】:
-
您想要进行这种特殊转换的更高层次的原因是什么?
-
我正在创建列,以便在机器学习算法中使用它。
-
您是否意识到 R 给您的内容有很多列,即
1 + length(convert_me) * length(age_col)?起初我以为你会希望每个唯一年龄有一列,但这不是 R 为你做的(你可以看看你是否将相同的年龄分配给两行)。