【发布时间】:2016-10-27 10:32:32
【问题描述】:
我在 csv 中有一个数据集。不幸的是,每一行都有不同数量的“,”逗号。我有兴趣从 R 中的文件中只导入前 3 个和后 3 个变量。
例如:
> line: "A","B","C","D",...,"X",Y","Z"
我想实现如下`
> line: "A","B","C","X","Y","Z"
我尝试使用 grep 来查找 - 通过使用正则表达式 - 前 3 个变量:
new_data <- grep("([^,]+)(,[^,]+){2}", dataset, values=TRUE)
在该操作之后,它会显示该表达式存在的所有行。
如何使用 grep 删除行中的以下变量,如果可能,如何删除整个区间( 中的每个变量)。
你现在有其他方法来解决这个问题吗?
【问题讨论】:
-
“不幸的是,每一行都有不同数量的逗号/字段”。这可以称为“参差不齐”的文件或“可变数量的字段”。
-
您想要 R 中的解决方案,还是像 @VarunM 提供的命令行解决方案?
-
Inside R 解决方案会很酷,我现在正在尝试实现 Varun 提供的“awk”解决方案。
-
抱歉,我看到了 grep 并认为命令行解决方案可以。我什至不关注 StackOverflow 上的
r。希望我的回答对你有所帮助! -
感谢您的解决方案;)我尝试在 R 中实现它,但收到以下错误:“系统错误(awk_call,实习生 = 实习生):'awk' 未找到”暂时我不知道为什么,但是当我弄清楚时,我会分享这些知识