将data.frame导出到xlsx

时间:2019-04-12 09:06:00

标签: r excel

我正在使用如下的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()

可以很容易地将其导出到xlsx。

所以我的问题是我想将该data.frame导出到xlsx,其中第一列为“国家/地区”,第二列代码,然后从那里为Description var的每个单词创建一列。考虑到短语的长度不同。

我试图再次使用str_split之类的东西,但我无法获得解决方案,甚至不会迷路。

1 个答案:

答案 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可以满足我的需求。