如何在R中使用powershell删除csv文件中的行?

问题描述 投票:0回答:1

早上好,

我对Powershell并不陌生,我想问你是否有人可以帮助我。

我在3.5gb处有一个很大的csv文件,我的目标是在R环境中以fread(一个data.table函数)加载它,但此函数会出错。

> n_a<-fread("C:/x/xy/xyz/name_file.csv",sep=";", fill = TRUE)

错误是:

Warning message:
In fread("C:/x/xy/xyz/name_file.csv") :
  Stopped early on line 458945. Expected 29 fields but found 30. Consider fill=TRUE and comment.char=. First discarded non-empty line

我尝试使用其他方式(我在代码fill=true中放入了代码,但没有用)解决问题,但我做不到。

经过不同的研究,我发现了这种解决方案(总是在R中执行:

>system("powershell Get-Content C:/a/b/c/file.csv | Select -Index (0..458944 + 1000000) > output.csv")

关于在R中使用powershell的重点是删除特定的行并加载并读取文件。

我的问题是:

如何在Powershell中删除csv中的特定行,但不指定矩阵的长度?

谢谢您提供各种帮助。

弗朗切斯科

r powershell fread
1个回答
0
投票
Add-Type -AssemblyName System.Collections [System.Collections.Generic.List[string]]$csvList = @() $csvFile = 'C:\test\myfile.csv' $csvList = [System.IO.File]::ReadLines( $csvFile ) $lineToDelete = 2 [void]$csvList.RemoveAt( $lineToDelete - 1 ) [System.IO.File]::WriteAllLines( $csvFile, $csvList ) | Out-Null
© www.soinside.com 2019 - 2024. All rights reserved.