我在data.frame
中有一个列,其中包含来自一系列复选框的数据。当我收到数据时,数据会被推入一个看起来像这样的列:
choice1|choice3|choice6
复制:
my.data <- data.frame(checkboxes="choice1|choice3|choice6", stringsAsFactors = FALSE)
有一些离散数量的此类值由管道分隔。
我想将这些数据转换为一系列以可能的选择命名的逻辑列,如下所示:
choice1 choice2 choice3 choice4 choice5 choice6
TRUE FALSE TRUE FALSE FALSE TRUE
我试过separate()
但它不太适合我的用例。我的用例似乎是重塑和separate()
的混合。
我如何在R?
中完成此任务答案 0 :(得分:2)
另一种可能性,同样的精神:
parsed_checkboxes <- strsplit(my.data$checkboxes, "|", fixed = TRUE)
as.data.frame(lapply(
setNames(nm = paste0("choice", 1:6)),
function(choice) vapply(parsed_checkboxes, "%in%", logical(1), x = choice)
))
## choice1 choice2 choice3 choice4 choice5 choice6
## 1 TRUE FALSE TRUE FALSE FALSE TRUE
答案 1 :(得分:1)
你想使用strsplit和apply函数的组合,这是一种方法:
private final Activity activity;
@Inject
public Navigator(Activity activity) {
this.activity = activity;
}