我有40个CSV文件,每个只有1列。我想将所有40个文件数据合并为1个包含2列的CSV文件。
数据格式如下:
我想space
preserve the number format
此列,并将所有40个CSV文件合并为1个文件。我也希望Negative
。
我尝试了以下代码,但数字格式未修复,并为 filenames <- list.files(path="C://R files", full.names=TRUE)
merged <- data.frame(do.call("rbind", lapply(filenames, read.csv, header = FALSE)))
data <- do.call("rbind", strsplit(as.character(trimws(merged$V1))," ",fixed=FALSE))
write.csv(data, "export1.csv", row.names=FALSE, na="NA")
数字添加了额外的第3列。不知道为什么。
我的代码:
get
我得到的输出如下所示。如果你观察到,负数将被放入额外的列。我只想按空格分割并按照输入中的确切数字格式放入2列。
R输出:
答案 0 :(得分:2)
问题是源数据是由以下分隔的:
诀窍是将字符串拆分为一个 或更多 空格:
data <- do.call("rbind", strsplit(as.character(trimws(merged$V1))," +",fixed=FALSE))
我在字符集,不可靠的文件等方面有点强迫症,所以我倾向于使用"[[:space:]]+"
之类的分离器,因为它会捕获空格变体而不是空格" "
或者标签"\t"
。
(在正则表达式中,+
表示“一个或多个”。其他修饰符包括?
为零或一,*
为零或更多。)