R-如何使用system()或system2()执行PowerShell cmds

康纳M.

我在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无论实际字数如何,为什么返回相同的值?

德迈尔

问题-概述

因此,这里有两个问题:

  1. 您不是system2()要使用Powershell
  2. 您没有使用正确的Powershell语法

解决方案

command <- "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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在R中捕获system2()输出

system2在R中运行

我如何找出以R中的system或system2开头的子进程的pid?

R system 或 system2 命令使用 paste 或 sprintf 来运行 bat 文件?

如何从Windows cmd脚本生成独立的sub-cmds?

如何在Maya上检索cmds.polyExtrude的创建的顶点

在 R 中使用 system2() 运行已编译的 cpp 文件

无法获得R语言system2命令结果

R system2并行运行不同的脚本

如何使用cmds.selectKey查找特定关键帧的时间?

Xamarin调试> iPhone-现在必须执行:lldb -s / tmp / mtouch-lldb-prep-cmds

VB exe找不到从R System / System2调用的配置文件

R中system()和system2()之间的区别?捕获变量中的文件名

如何在不杀死其他cmds的情况下杀死cmd进程?

如何中止通过Python中的cmds.file开始的Maya文件加载

我如何像在 Dockerfile 中一样运行 Docker cmds

Maya Python ...使用maya.cmds编码时的任意精度的解决方法

将stdout = TRUE添加到R的system2命令并接收警告。为什么?

使system2使用特定版本的python

如何在R中使用system()或shell()执行git-bash命令

HTML导出中的组织模式忽略分页符乳胶cmds

Maya Python中的cmds.scriptCtx到底做什么?

Docker:在jenkinsfile中运行cmds时找不到

echo (echo "请稍候,$i") >> bash 中的 cmds.txt

maya.cmds 结束脚本的对话框

env argument does not work in system2?

在R中使用system()函数

R使用system()返回错误

R的system.time如何工作?