【问题标题】:How to read numbers from standard input, add and write the sum into standard output in R?如何从标准输入读取数字,将和写入 R 中的标准输出?
【发布时间】:2023-09-17 11:19:01
【问题描述】:

您好,我需要我的 R 脚本从标准输入读取数字,将数字相加并将总和写入标准输入。

可以有以下两种方式。一种方法是:

while (there is next line) {
  add the number to the list
}
sum = add(list of numbers)
print sum

另一种方式是:

while (there is next line) {
  sum = sum + next number
}
print sum

我的代码正在从文件中读取数字,并且由于我是 R 新手而出现错误。

numbers <- scan("", what = integer())


for (i in 1:length(numbers)) {
  sum = sum + i
}


sum

【问题讨论】:

  • 您要查找的命令是 scan() - 键入 ?scan 以获得帮助。但在你这样做之前,我认为你需要停下来阅读 R Intro,然后再继续前进。
  • readline() 或 scan() 用于输入,print() 用于输出
  • scan and readline 接受一次输入,但我想读取几个数字,循环中的每一行一个。

标签: r


【解决方案1】:

试试这个:

numbers <- scan()
sum(numbers)

或者:

sum(scan())

这是你的意思吗?

mySum <- 0
for(i in 1:3){
  mySum <- mySum + sum(scan(n=1))
  print(mySum)
}

【讨论】:

  • sum(scan()) 用于获取用户输入并显示计算的总和
  • scan and readline 接受一次输入,但我想读取几个数字,循环中的每一行一个。
  • @user3022609 使用n=1 选项进行扫描,请参阅我编辑的答案。
  • 但我不知道要扫描多少行。因此,我不想运行 for 循环 3 次,而是希望它运行直到不再通过标准输入接收到行。
  • @user3022609 然后就用sum(scan())
最近更新 更多