【发布时间】:2018-08-10 22:21:41
【问题描述】:
浏览了有关此主题的一些帖子,但找不到解决方案。
我有以下代码使用apply() 循环整个数据帧。
pclm <- data.frame(apply(B01001_AGE[6:23], 1, function(x){
pclm <- pclm(x=seq(0,85,by=5), y=c(x), nlast=26, control = list(lambda = NA, deg = 3, kr = 1)) #nlast=26, assuming the oldest people alive are 110 years of age, 85+26=111.
round(fitted(pclm))
}))
但我想循环基于列的值而不是整个数据集的子集。
例如,我有一个变量sumlev,我想在sumlev=='050' 时将我的代码用于子集。
如果不生成数据集的子集,我怎么能做到这一点?谢谢。
【问题讨论】:
-
我并不真正理解您希望如何在不生成数据集子集的情况下对数据集子集进行操作。你只想用
B01001_AGE[B01001_AGE$sumlev == '050', 6:23]到apply来对付吗? -
我能想到的唯一想法是使用管道,但您仍然需要对数据进行子集化
df %>% subset(sumlev=='50') %>% apply(., 1, function(x)) -
如果我可能会问,您能否发布 a)您的数据的一个小示例,b)您要应用的功能(如果是 pclm,它来自哪个包?),以及输出你希望看到的?