gpt4 book ai didi

r - 将字符串变量分割成多个变量

转载 作者:行者123 更新时间:2023-12-03 19:05:42 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Split character column into several binary (0/1) columns

(7 个回答)


去年关闭。




我有字符类型的数据(数据框中的一列)。我想将这些字符分开,并根据内容用 0 和 1 填充单独的变量。
该列可以通过以下方式重新创建:

df <- data.frame(var = c("1;2", NA, "1;2;3;4;5", "3;5", "1", "1;4", "3", NA, "4", "1;5"))
例如,字符的范围可以从 1 到 5。我想创建六个变量:
var_1、var_2、var_3、var_4、var_5 和 var_NA。如果该行在字符串中包含 1,我希望 var_1 包含 1,如果没有,则包含 0。
谢谢!

最佳答案

也许,使用 cSplit_e将是一个选择

library(splitstackshape)  
library(dplyr)
cSplit_e(df, 'var', sep=";", type = 'character', fill = 0, drop = TRUE)%>%
mutate(var_NA = +(is.na(df$var)))
# var_1 var_2 var_3 var_4 var_5 var_NA
#1 1 1 0 0 0 0
#2 0 0 0 0 0 1
#3 1 1 1 1 1 0
#4 0 0 1 0 1 0
#5 1 0 0 0 0 0
#6 1 0 0 1 0 0
#7 0 0 1 0 0 0
#8 0 0 0 0 0 1
#9 0 0 0 1 0 0
#10 1 0 0 0 1 0

或使用 base R
t(sapply(strsplit(df$var, "[:;]"), function(x) +(1:5 %in% x)))

关于r - 将字符串变量分割成多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63678764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com