gpt4 book ai didi

r - 将其他语言与 R 混合

转载 作者:行者123 更新时间:2023-12-03 18:16:43 25 4
gpt4 key购买 nike

我的大部分统计分析都使用 R。但是,清理/处理数据,尤其是处理 1Gb+ 大小的数据时,非常麻烦。所以我为此使用了常见的 UNIX 工具。但我的问题是,是否可以在 R session 中间以交互方式运行它们?一个例子:让我们说 file1是来自 R 进程的输出数据集,有 100 行。由此,对于我的下一个 R 过程,我需要第 1 列和第 2 列的特定子集,file2 ,可以通过 cut 轻松提取和 awk.所以工作流程是这样的:

Some R process => file1
cut --fields=1,2 <file1 | awk something something >file2
Next R process using file2

如果这是一个愚蠢的问题,请提前道歉。

最佳答案

试试这个(如果需要,添加其他 read.table 参数):

# 1
DF <- read.table(pipe("cut -fields=1,2 < data.txt| awk something_else"))

或在纯 R 中:
# 2
DF <- read.table("data.txt")[1:2]

或者甚至不读取不需要的字段,假设有 4 个字段:
# 3
DF <- read.table("data.txt", colClasses = c(NA, NA, "NULL", "NULL"))

对于我们知道我们想要前两个字段但不知道还有多少其他字段的情况,可以修改最后一行:
# 3a
n <- count.fields("data.txt")[1]
read.table("data.txt", header = TRUE, colClasses = c(NA, NA, rep("NULL", n-2)))

可以使用 sqldf 包。在这个例子中,我们假设一个 csv 文件, data.csv并且所需的字段称为 ab .如果它不是 csv 文件,则对 read.csv.sql 使用适当的参数指定其他分隔符等:
# 4
library(sqldf)
DF <- read.csv.sql("data.csv", sql = "select a, b from file")

关于r - 将其他语言与 R 混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892319/

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