gpt4 book ai didi

r - 命令行 - 适用于 Windows 的 Awk 命令

转载 作者:可可西里 更新时间:2023-11-01 10:41:59 26 4
gpt4 key购买 nike

我有一个包含数百万行的 CSV 文件。我想打开一个文件连接并在 R 中打开它之前过滤掉不需要的行。具体来说,我想从第二行开始每 30 行导入一次。

我在 Windows 机器上操作。我知道以下命令可以在 Apple 上实现预期的结果;但是,它在我的 Windows 机器上不起作用。

awk 'BEGIN{i=0}{i++;if (i%30==2) print $1}' < test.csv

在 R 中,如果我在 Apple 上运行这段代码,我会得到想要的结果:

write.csv(1:100000, file = "test.csv")
file.pipe <- pipe("awk 'BEGIN{i=0}{i++;if (i%30==2) print $1}' < test.csv")
res <- read.csv(file.pipe)

显然,我对 Windows CLI 一无所知,所以有人可以帮我将这个 awk 命令翻译成 Windows 语言,并可能解释一下翻译是如何达到预期结果的吗?

提前致谢!

更新:

所以我已经下载了 Git 并且已经能够使用 Git 命令行成功完成这个任务,但是我需要在 R 中实现它,因为我必须在数千个文件上完成这个任务。有人知道如何让 R 通过 Git 运行这个命令吗?

最佳答案

write.csv(1:100000, file = "test.csv")
file.pipe <- pipe("awk \"BEGIN{i=0}{i++;if (i%30==2) print $1}\" test.csv")
res <- read.csv(file.pipe)

在 Windows 上,awk 的程序行需要用双引号括起来。由于同一行上的其他双引号,它们被转义了。

也不需要输入文件前的“<”(我怀疑 Apple 是否需要它。)

关于r - 命令行 - 适用于 Windows 的 Awk 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48897351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com