【发布时间】:2013-12-03 05:13:16
【问题描述】:
我已经寻找答案,但只找到了涉及 C 或 C# 的内容。 我意识到 R 的大部分内容是用 C 编写的,但我对此一无所知。 我对 R 也比较陌生。 我正在使用当前的 Rstudio。
这与我想要的相似,我想。 Read the data efficiently with multiple separating lines in R
我有一个 csv 文件,但一个变量是一个字符串,其值由 _ 和 - 分隔
而且我想知道是否有一个包或额外的代码在读取时执行以下操作。命令。
"1","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",0,218,4,93,1377907200000
"2","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",0,390,5,157,1377993600000
"3","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",0,376,5,193,1.37808e+12
"4","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",1,35,1,15,1377907200000
"5","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",12,11258,117,2843,1377993600000
"6","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",5,4659,56,1826,1.37808e+12
"7","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_ANDROID","2013-08-31 13:39:55.0","2013-10-16 13:58:00.0",7,7296,136,2684,1377907200000
"8","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_IOS_IPAD","2013-08-31 13:18:21.0","2013-10-16 13:58:00.0",0,4533,35,1632,1377907200000
"9","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_IOS_IPAD","2013-08-31 13:18:21.0","2013-10-16 13:58:00.0",0,421,6,161,1377993600000
"10","Client1","Name2","*Name3_Name1_KB_MobApp_M-13-44_AU_PI Likes by KB_IOS_IPAD","2013-08-31 13:18:21.0","2013-10-16 13:58:00.0",0,57,2,23,1.37808e+12
示例行:
Name Name1 *XYZ_Name3_KB_MobApp_M-18-25_AU_PI ANDROID 2013-09-32 14:39:55.0 2013-10-16 13:58:00.0 0 218 4 93 1377907200000
所以阅读起来很容易
results <- read.delim("~/results", header=F)
但我仍然有字符串 *XYZ_Name3_KB_MobApp_M-18-25_AU_PI
所需的输出(由_ 和- 分隔):
Name Name1 *XYZ Name3 KB MobApp M 18 25 AU PI ANDROID 2013-09-32 14:39:55.0 2013-10-16 13:58:00.0 0 218 4 93 1377907200000
但不拆分时间字符串。
---- 感谢@Henrik 和@AnandaMahto 提供代码和包。 ----
library(splitstackshape)
# split concatenated column by `_`
df4 <- concat.split(data = df3, split.col = "V3", sep = "_", drop = TRUE)
# split the remaining concatenated part by `-`
df5 <- concat.split(data = df4, split.col = "V3_5", sep = "-", drop = TRUE)
【问题讨论】:
-
我可以选择再次导出到 csv,然后放入 excel 并使用文本到列两次。但由于我使用的是 excel 2010,它的行数有限。
-
看看
str_split或stringr::str_split_fixed看看是否有帮助。 -
啊,这么简单。你认为我应该分多个步骤来做吗?而不是导入。
-
我会在导入后立即执行。我将在下面发布 sn-p。
-
您可以使用正则表达式和 | 在 strsplit 中指定多个拆分字符。运算符,例如 strsplit("*XYZ_Name3_KB_MobApp_M-18-25_AU_PI ANDROID",split="\_|\\-")
标签: r csv import delimiter separator