【问题标题】:Subset with loop over an array of strings在字符串数组上循环的子集
【发布时间】:2012-11-05 02:42:22
【问题描述】:

我的代码是这样的:

for (i in 1:b) {
carteraR[[i]]=subset(carteraR[[i]],RUN.FONDO=="8026" | RUN.FONDO=="8036" | RUN.FONDO=="8048" | RUN.FONDO=="8057" | RUN.FONDO=="8059" | RUN.FONDO=="8072" | RUN.FONDO=="8094" | 
RUN.FONDO=="8107" | RUN.FONDO=="8110" | RUN.FONDO=="8115" | RUN.FONDO=="8130" | RUN.FONDO=="8230" | RUN.FONDO=="8248" | RUN.FONDO=="8257" | RUN.FONDO=="8319")
}

其中b=length(carteraR)class(carteraR[[i]])=data.frameRUN.FONDO 是这些数据帧的头部之一。这段代码运行良好,但我想节省一些行。

我想要的是这样的:

for (i in 1:b) {
for (j in 1:length(A)){
carteraR[[i]]=subset(carteraR[[i]],RUN.FONDO==A[j])
}
}

还有A= "8026" "8036" "8048" "8057" ... "8319".......等等......

代码应该是什么样的?

谢谢

【问题讨论】:

    标签: arrays string r loops subset


    【解决方案1】:

    像这样:

    carteraR <- lapply(carteraR, subset, RUN.FONDO %in% A)
    

    请注意,以编程方式使用 subset 可能存在风险:Why is `[` better than `subset`?。不过这种用法很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 1970-01-01
      相关资源
      最近更新 更多