基于delimeter拆分R中的data.frame单元
我有这样一个数据框:基于delimeter拆分R中的data.frame单元,r,R,我有这样一个数据框: x TicketID Application Impacted_Systems 1 Web Online; PeopleSoft, Financials etc 我喜欢做的是基于x$U创建另一个data.frame系统将每个项目以“;”分隔到其自己的列中,然后将其与data frame x进行比较以绘制它 到目前为止,我有: data.frame(do.call('rbind', strsplit(as.charac
x
TicketID Application Impacted_Systems
1 Web Online; PeopleSoft, Financials
etc
我喜欢做的是基于x$U创建另一个data.frame系统将每个项目以“;”分隔到其自己的列中,然后将其与data frame x进行比较以绘制它
到目前为止,我有:
data.frame(do.call('rbind', strsplit(as.character(x$Impacted_Systems),';')))
这将为每个字符串创建以“;”分隔的列两次:
你知道我做错了什么吗?在这种特殊情况下,应该只有3列,而不是7列
我试过这个
p<-colsplit(x$Impacted_Systems, ";")
p#一些示例数据
df在重塑2软件包中签出colsplit
跳过cbind…
并使用new\u df
p<-colsplit(x$Impacted_Systems, ";")
# some example data
df <- data.frame(Impacted_Systems = c("foo;bar", "foo;bar1;bar2", "foo;bar1;bar2;bar4;bar4"))
library(plyr)
library(reshape2)
split_names <- llply(as.list(df$Impacted_Systems), function(x){
split_data <- data.frame(rbind(strsplit(x, ";")[[1]]))
names(split_data) <- paste0("Impacted_Systems", 1:length(strsplit(x, ";")[[1]]))
split_data
})
> cbind(df, ldply(split_names))
Impacted_Systems Impacted_Systems1 Impacted_Systems2
1 foo;bar foo bar
2 foo;bar1;bar2 foo bar1
3 foo;bar1;bar2;bar4;bar4 foo bar1
Impacted_Systems3 Impacted_Systems4 Impacted_Systems5
1 <NA> <NA> <NA>
2 bar2 <NA> <NA>
3 bar2 bar4 bar4