在一行代码中创建一个“ for循环”

时间:2020-10-01 14:55:59

标签: r loops

我刚刚开始使用R / Rstudio,我做了一个简单的for循环,它查看数据集“ Galaxies”,接受质量大于9的黑洞,然后将其距离除以光年。 (“距离”)乘以1000。现在我被问到如何用1行代码执行此任务,我想知道这是最好的一天吗?

这是我到目前为止所管理的:

for(i in 1:nrow(galaxies)){
if(galaxies$BlackHoleMass[i] > 9){
    print(galaxies[i,"Distance"]/1000)
    }
 }

我已经尝试过了

galaxies[galaxies$BlackHoleMass>=9,print(galaxies[Distance]/1000

但是我得到了错误:“中出现意外的符号:”

(抱歉,这是我关于Stack Overflow的第一个问题,所以如果我遗漏/格式化了错误的内容,请告诉我!)

1 个答案:

答案 0 :(得分:1)

如果我理解正确,则希望使用子集/过滤器(仅选择质量大于9的黑洞),然后将它们的距离除以1000。假设不需要打印结果,则可以使用此子集。 / p>

library(dplyr)
galaxies %>% filter(BlackHoleMass > 9) %>% mutate(Distance = Distance/1000)

但是也许使用管道功能是作弊;)