我有兴趣创建一个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等的类别。"第二个是时间。在这种情况下,有人可以告诉我如何具体做到这一点吗?
答案 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 R
将read.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