我在R(在Windows操作系统上)中工作,试图计算文本文件中的单词数而不将文件加载到内存中。想法是获取有关文件大小,行数,字数等的一些统计信息。find
不难实现对R的用于行数的system()函数的调用:如何执行“字数” Windows命令提示符中的命令
lineCount <- system(paste0('find /c /v "" ', path), intern = T)
我要用于字数统计的命令是PowerShell命令:Measure-Object
。我可以使以下代码运行而不会引发错误,但返回的计数不正确。
print(system2("Measure-Object", args = c('count_words.txt', '-Word')))
[1] 127
该文件count_words.txt
大约有数百万个单词。我还用更少的单词在.txt文件上进行了测试。
"There are seven words in this file."
但是计数再次返回为127。
print(system2("Measure-Object", args = c('seven_words.txt', '-Word')))
[1] 127
可以system2()
识别PowerShell命令吗?使用时调用该函数的正确语法是什么Measure-Object
?无论实际字数如何,为什么返回相同的值?
因此,这里有两个问题:
system2()
要使用Powershellcommand <- "Get-Content C:/Users/User/Documents/test1.txt | Measure-Object -Word"
system2("powershell", args = command)
C:/Users/User/Documents/test2.txt
用文件路径替换的位置。我创建了两个.txt文件,其中一个带有文本“此文件中有七个单词”。另一个带有文本“但是此文件中有八个单词”。然后,我在R中运行以下命令:
command <- "Get-Content C:/Users/User/Documents/test1.txt | Measure-Object -Word"
system2("powershell", args = command)
Lines Words Characters Property
----- ----- ---------- --------
7
command <- "Get-Content C:/Users/User/Documents/test2.txt | Measure-Object -Word"
system2("powershell", args = command)
Lines Words Characters Property
----- ----- ---------- --------
8
来自help("system2")
:
system2调用由command指定的OS命令。
一个主要问题是这Measure-Object
不是系统命令,而是PowerShell命令。PowerShell的系统命令是powershell
,这是您需要调用的命令。
然后,此外,您还没有正确的PowerShell语法。如果看一下docs,您会看到您真正想要的PowerShell命令是
Get-Content C:/Users/User/Documents/count_words.txt | Measure-Object -Word
(请查看链接文档中的示例三)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句