如何在编写已删除数据的csv文件时拆分项目名称

时间:2018-02-11 01:08:26

标签: r excel csv web-scraping

我有兴趣创建一个csv或类似的Excel兼容文件,其中包含我使用R从网上抓取的数据。到目前为止,我通过这样做存储了数据:

[1] "(Wirtschaft, 00:00)"       "(Kultur, 23:42)"           "(Sport, 23:38)"            "(Politik, 23:16)"         
  [5] "(Sport, 22:29)"            "(Panorama, 21:56)"         "(Sport, 21:39)"            "(Sport, 21:25)"           
  [9] "(Sport, 20:23)"            "(Politik, 20:21)"          "(Politik, 20:09)"          "(Wissenschaft, 19:41)"

变量" mydata"现在包含以下内容:

DateInMySqlFormat

当我现在使用write.csv时,我想创建两个列,第一个列应该包含类似" Wirtschaft,Sport等的类别。"第二个是时间。在这种情况下,有人可以告诉我如何具体做到这一点吗?

2 个答案:

答案 0 :(得分:2)

删除括号,转换为tibble(其列将被称为value)并使用separate将其拆分为两列。最后把它写出来。将stdout()替换为您的文件名。

Lines <- c("(Wirtschaft, 00:00)", "(Kultur, 23:42)") # test data

library(dplyr)
library(tidyr)
library(tibble)

Lines %>% 
      gsub("[()]", "", .) %>%
      as.tibble %>%
      separate(value, into = c("Name", "Time"), sep = ", ") %>%
      write.csv(stdout(), row.names = FALSE)

,并提供:

"Name","Time"
"Wirtschaft","00:00"
"Kultur","23:42"

答案 1 :(得分:1)

我们可以使用base Rread.csv替换为空白(())并""

,然后使用gsub执行此操作
df1 <- read.csv(text = gsub("[()]", "", mydata), header = FALSE,
          col.names = c("Col1", "Col2"), stringsAsFactors = FALSE)
head(df1)
#      Col1   Col2
#1   Kultur  23:42
#2    Sport  23:38
#3  Politik  23:16
#4    Sport  22:29
#5 Panorama  21:56
#6    Sport  21:39

tail(df1)
#          Col1   Col2
#189 einestages  04:26
#190   Panorama  04:26
#191      Sport  04:09
#192    Politik  03:11
#193    Politik  01:56
#194    Politik  00:15