如何在R中多行编写命令?

时间:2016-03-24 21:55:28

标签: r

我每天都在Python和JS中编码,我的代码的可读性对我和我的团队来说非常重要。有没有办法让R中的长命令更具可读性?例如:

onTimeData <- origData[!is.na(origData$ARR_DEL15) & 
                         origData$ARR_DEL15!="" & 
                         !is.na(origData$DEP_DEL15) & 
                         origData$DEP_DEL15!="",]

这会产生Error: unexpected ',' in "origData$DEP_DEL15!="","

我有什么方法可以在RStudio的多行中编写它吗?

2 个答案:

答案 0 :(得分:2)

你所拥有的应该工作得很好。您错过的只是onTimeData <- origData[which(!is.na(origData$ARR_DEL15) & origData$ARR_DEL15!="" & !is.na(origData$DEP_DEL15) & origData$DEP_DEL15!=""),] 函数,它将返回符合您所有要求的行。

var startDate = moment('2016-03-11').format('YYYY-MM-DD');
var query = exports.dataset.createQuery('Resource')
  .filter('startDate', '>=', startDate);
exports.dataset.runQuery(query, function(err, resources) {
  console.log(resources);
});

答案 1 :(得分:0)

由于可读性是首要任务,我建议您检查dplyr包。它本质上为您提供了一种函数式编程类型的数据操作方法。因此,我觉得代码更具可读性。例如

library(dplyr)
onTimeData <-
 origData %>%
     filter(!is.na(ARR_DEL15) & 
       ARR_DEL15!="" & 
       !is.na(DEP_DEL15) & 
       DEP_DEL15!="")

我觉得这更漂亮。无需对'$'函数进行多次恼人的调用。