gpt4 book ai didi

r - 管道 unix 命令

转载 作者:行者123 更新时间:2023-12-04 05:50:29 25 4
gpt4 key购买 nike

这是this的后续题。我有 this固定宽度文件,其中列宽为 34 2 3 2 2 1 2 2 1 1 2 2 1 2 2 2 和 65。我想在删除第一列和最后一列后将其读入 R,其中第二列有值“07”。感谢 Mat,如果我只想将 txt 文件转换为 csv,我可以使用以下代码来完成:

awk -v FIELDWIDTHS='34 2 3 2 2 1 2 2 1 1 2 2 1 2 2 2 65' -v OFS=',' '($2=='07'){ $1=$1 ''; print }' </filepath/pipe.txt | cut --delimiter=',' --fields=2- > /filepath/parsed.csv

当然,我可以然后阅读 parsed.csv文件。但我想用 pipe() 一次性完成。 .当我尝试在 R 中使用管道时,它挂起:
a = read.csv(pipe("awk -v FIELDWIDTHS='34 2 3 2 2 1 2 2 1 1 2 2 1 2 2 2 65' -v OFS=',' '($2=='07'){ $1=$1 ''; print }' 
</filepath/pipe.txt
| cut --delimiter=',' --fields=2-")
, header=F, colClasses="character")

最佳答案

我不确定 pipe()但我会用 system() 来做.

library(stringr)
txt <- system("awk -v FIELDWIDTHS='34 2 3 2 2 1 2 2 1 1 2 2 1 2 2 2 65' -v OFS=',' '($2=='07'){ $1=$1 ''; print }' < pipe.txt | cut --delimiter=',' --fields=2-", intern=T)
do.call(rbind, str_split(txt, ","))

关于r - 管道 unix 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10119391/

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