我刚刚开始使用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的第一个问题,所以如果我遗漏/格式化了错误的内容,请告诉我!)
答案 0 :(得分:1)
如果我理解正确,则希望使用子集/过滤器(仅选择质量大于9的黑洞),然后将它们的距离除以1000。假设不需要打印结果,则可以使用此子集。 / p>
library(dplyr)
galaxies %>% filter(BlackHoleMass > 9) %>% mutate(Distance = Distance/1000)
但是也许使用管道功能是作弊;)