我可以使用tidyverse与';如果';和';其他';更快的声明

我可以使用tidyverse与';如果';和';其他';更快的声明,r,dplyr,purrr,R,Dplyr,Purrr,我有一个for循环,使用if-else语句进行数据挖掘。然而,这需要很长的时间来运行。我在某个地方读到tidyverse(dplyr,或purrr)有时是一个比运行循环更快的替代品,但我在purrr中找不到任何“if”“else”函数。以下是我到目前为止的循环: for (j in 1:length(my.query$data$value)){ if(my.query$data$station[j] %in% dataPRCP[,1]){ rowNum<-whic

我有一个for循环,使用if-else语句进行数据挖掘。然而,这需要很长的时间来运行。我在某个地方读到tidyverse(dplyr,或purrr)有时是一个比运行循环更快的替代品,但我在purrr中找不到任何“if”“else”函数。以下是我到目前为止的循环:

  for (j in 1:length(my.query$data$value)){
    if(my.query$data$station[j] %in%  dataPRCP[,1]){
      rowNum<-which(dataPRCP[,1]==my.query$data$station[j])
      dataPRCP[rowNum,i+3]<-my.query$data$value[j]
    } else {
      dataPRCP<-rbind(dataPRCP,emptyrow)
      rowNum<-length(dataPRCP[,1])
      location <- ncdc_stations(stationid = my.query$data$station[j])
      dataPRCP[rowNum,1]<-my.query$data$station[j]
      dataPRCP[rowNum,2]<-location$data$latitude
      dataPRCP[rowNum,3]<-location$data$longitude
      dataPRCP[rowNum,i+3]<-my.query$data$value[j]
    }
  }
for(j in 1:length(my.query$data$value)){
if(my.query$data$station[j]%在%dataPRCP[,1]中){

rowNum为了获得直接帮助,您需要一个最简单的工作示例(我不知道您的数据是什么样子,也不知道您是如何操作它的)。但是,
purrr
中的一般策略是对列表中的每个元素应用一个函数。将if/else语句放入一个函数中(使用适当的输入),并且
map
将函数应用于每个元素:

# trivial example
library(purrr)
result <- map(1:5, print)

为了获得直接帮助,您需要一个简单的工作示例(我不知道您的数据是什么样子,也不知道您试图如何操作它)。但是,
purrr
中的一般策略是将函数应用于列表中的每个元素。将if/else语句放入函数中(使用适当的输入),并且
map
将函数应用于每个元素:

# trivial example
library(purrr)
result <- map(1:5, print)

谢谢,这就是我所需要的!@Melissa\u-Key谢谢,这就是我所需要的!@Melissa\u-Key
# trivial example
# library(dplyr)
data_frame(a = 1:4) %>%
  mutate(b = if_else(a > 2, 1, 10)