【发布时间】:2020-11-10 14:18:25
【问题描述】:
我可能错过了使用搜索功能找到答案的正确词。我将有一个列数未知的数据集,因为它们是另一个程序中的工作函数,以后更改将更改数据集中变量的数量。但是,该数据集结构清晰,开头有 6 个变量(包括下面提到的 code、一个因子变量和 year,从第 7 列开始所有其他变量是其他程序中工作的函数(MaxQDA)。
所以我希望有一个灵活的调用 7 到 N 列聚合函数替换以下代码中的点,据我了解,这需要所有列。
dataset2 <- aggregate(. ~ code+jahr,
data = dataset,
sum,
na.action=na.pass
)
here 的建议无济于事,因为我不知道如何将 code+jahr 转换为其他建议的聚合函数编写变体。
附录:或者,换一种说法:我希望从聚合函数中排除一些列,同时总结一系列其他列。
由于对向量类型存在混淆。我有一些因素数据,如 ID 和名称。数据看起来像这样
set.seed(42)
test2 <- as.data.frame(matrix(sample(16 * 4, replace=TRUE), ncol=16, nrow=4))
code <-c("aaa", "bbb","aaa", "ddd")
jahr <- c("1990", "1993", "2007", "2020")
id <- c("id1", "id2", "id3", "id4")
Name <- c("bla", "bla2", "bla3", "bla4")
test <- data.frame(code, jahr, id, Name)
dataset <- data.frame(test, test2)
dataset[1:4] <- lapply(dataset[, 1:4], as.factor)
【问题讨论】:
-
你能用
.[,7:n]调用所有的列吗?也许是n <- ncol(dataset)的序言? -
第一个建议给了我:“评估错误(predvars,数据,环境):对象'。'未找到”。第二个建议也一样。即使我尝试将 n 设为数字。