我正在使用如下的data.frame
> ResultsFrame
Country Code Description
1 Spain B.SP.03089 A random phrase describing the code info
2 UK D.UK.00035 Another random phrase describing the code info
...
此data.frame是从类似
的列表中获得的> Results
1 Spain-B.SP.03089-A random phrase describing the code info
2 UK-D.UK.00035-Another random phrase describing the code info
对其他2个变量使用aux <- str_split(Results,"-")
和Country <- unlist(aux)[seq(1,length(unlist(aux)),by=3)]
并等效。如您所知,使用write.xlsx()
所以我的问题是我想将该data.frame导出到xlsx,其中第一列为“国家/地区”,第二列代码,然后从那里为Description var的每个单词创建一列。考虑到短语的长度不同。
我试图再次使用str_split
之类的东西,但我无法获得解决方案,甚至不会迷路。
答案 0 :(得分:0)
因此,在提出建议之后,我想用double for循环解决问题,我试图避免它,但这是最简单的方法。解决方法如下:
> Description <- unlist(aux)[seq(3,length(unlist(aux)),by=3)]
> Description2 <- str_split(Description," ")
> for (i in 1:length(Description2)){
+ for (j in 1:length(Description2[[i]])) Results[i,j+3] <- Description2[[i]][j]
+ }
> Results$Description <- NULL
最后一句话只是根据个人需要删除该列。最终结果是
Country Code V4 V5 V6 V7 V8
1 Spain B.SP.03089 word1 word2 word3 <NA> <NA>
2 UK D.UK.00035 word1 word2 word3 word4 word5
...
将其导出到xlsx可以满足我的需求。