【问题标题】:Printing 'Hello world' n number of times in R在R中打印'Hello world' n次
【发布时间】:2019-01-30 18:43:53
【问题描述】:

我正在尝试自学 R 并尝试使用 for 循环,这是任何命令式语言的基本构造。

一开始,我使用了一个 for 循环来增加一个变量任意次数:

x = 0
for (i in 1:1000) {
    x = x + 1
}

这按预期工作。但是,当我尝试在此循环中paste 一条简单消息时,我没有得到任何输出。具体来说:

for (i in 1:1000) {
    paste('Hello world!')
}

这是为什么?

【问题讨论】:

  • paste 用于连接字符串,使用print
  • 为什么paste 在循环之外工作呢?
  • 命令"Hello world!" 也会给你同样的结果——它最终调用了 print 方法。使用单个参数调用 paste 是毫无意义的。
  • R 中通常会避免循环。使用apply 系列函数,或dplyr 中的map。
  • 谢谢@hmhensen。我是 R 新手,仍然不熟悉约定。

标签: r loops for-loop


【解决方案1】:

在 R 中,您需要在循环内使用 print 来获取输出:

for (i in 1:1000) {
    print(paste('Hello world!'))
}

最好的!

【讨论】:

  • 谢谢!这是否适用于函数和 if 语句等所有块?
  • 您实际上不需要将paste() 保留在循环中,只需print() 即可。
  • 嗨!函数并不冗长(尽管如果未分配给变量,则打印返回的参数)。另一方面,如果语句是冗长的。这是一个关于 for 循环的非常有趣的线程:stackoverflow.com/questions/4716152/…,这里显示了这些循环的进度medium.com/human-in-a-machine-world/…。我希望你喜欢学习 R!
【解决方案2】:

或使用apply 家庭!
比如这样:

sapply(rep(1,100),FUN = function(x) print("hello world!"))

【讨论】:

    猜你喜欢
    • 2013-08-23
    • 1970-01-01
    • 2012-10-06
    • 2020-02-03
    • 2014-06-04
    • 2019-03-19
    • 2015-05-04
    • 2018-03-11
    • 2014-01-10
    相关资源
    最近更新 更多