R 特定的分隔符可以分隔数据帧

R 特定的分隔符可以分隔数据帧,r,R,我尝试执行这个命令 df2 <- as.data.frame.matrix(table(stack(setNames(strsplit(df$col1, "---", fixed = TRUE), df$id))[2:1])) 知道为什么会发生这种错误吗?不幸的是,我无法提供此代码的可复制示例,因为我无法找到导致此错误的原因 这个命令的作用是它生成0和1的值,这两个值之间用---分隔 输入示例: data.frame(id = c(1,2), col1 = c(&qu

我尝试执行这个命令

df2 <- as.data.frame.matrix(table(stack(setNames(strsplit(df$col1, "---", fixed = TRUE), df$id))[2:1]))
知道为什么会发生这种错误吗?不幸的是,我无法提供此代码的可复制示例,因为我无法找到导致此错误的原因

这个命令的作用是它生成0和1的值,这两个值之间用---分隔

输入示例:

data.frame(id = c(1,2), col1 = c("text---here","text---there"))
预期产量

data.frame(id = c(1,2), text = c(1,1), here = c(1,0), there = c(0,1))

如果所讨论的任务很复杂,那么将其分为若干部分是值得的。试试这个:

x = data.frame(id = c(1,2), col1 = c("text---here","text---there")); x$col1 = as.vector(x$col1)
Split = strsplit(as.vector(x$col1), split = "---")
levels = unique(unlist(Split))
x = cbind(x, matrix(ncol = length(levels), nrow = nrow(x)))
for(i in 1:length(levels))
{
  x[,ncol(x)-length(levels)+i] <- sapply(Split, function(x) max(x == levels[i]))
}
colnames(x) <- c("id", "col1", levels)
x
# id         col1 text here there
# 1  1  text---here    1    1     0
# 2  2 text---there    1    0     1
x=data.frame(id=c(1,2),col1=c(“text--here”,“text--there”);x$col1=as.vector(x$col1)
Split=strsplit(如.vector(x$col1),Split=“--”)
级别=唯一(未列出(拆分))
x=cbind(x,矩阵(ncol=length(levels),nrow=nrow(x)))
适用于(i/1:长度(级别))
{

x[,ncol(x)-长度(级别)+i]谢谢,我需要将插入拆分的文本作为列名。请检查我提供的预期输出示例亲爱的Heln,我添加了一行以包含列名。我还替换了grepl,以实现拆分向量的精确匹配:因为某些级别包含在其他级别中(例如,“here”包含在“there”中),结果data.frame不完全正确。
x = data.frame(id = c(1,2), col1 = c("text---here","text---there")); x$col1 = as.vector(x$col1)
Split = strsplit(as.vector(x$col1), split = "---")
levels = unique(unlist(Split))
x = cbind(x, matrix(ncol = length(levels), nrow = nrow(x)))
for(i in 1:length(levels))
{
  x[,ncol(x)-length(levels)+i] <- sapply(Split, function(x) max(x == levels[i]))
}
colnames(x) <- c("id", "col1", levels)
x
# id         col1 text here there
# 1  1  text---here    1    1     0
# 2  2 text---there    1    0     1