作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<分区>
我有这样的数据集:
id value1 value2
1 A True
2 B False
3 A True
4 C True
我想识别一个具有多个值的列,并将其转换为 R 中具有 True 或 False 值的多个列。结果将是:
id value1.A value1.B value1.C value2
1 True False False True
2 False True False False
3 True False False True
4 False True False True
我不确定如何为此使用 dcast。我自己写了一个函数,但它太慢了。它的代码在这里:
to_multiple_columns <- function(col,attr_name){
elements <- names(table(col))
drops <- c("","True","False")
elements <- elements[ !elements %in% drops]
new_df <- data.frame(col) # to define data frame with nrows,ncols
if(length(elements) > 0){
new_attr_names <- paste(attr_name,elements,sep = ".")
for(j in 1:length(new_attr_names)){
new_df <- data.frame(new_df,grepl(elements[j],col))
}
drops <- c("col") #drop original col
new_df <- new_df[,!(names(new_df) %in% drops)]
names(new_df) <- new_attr_names
}
return(new_df)
}
我是一名优秀的程序员,十分优秀!