我有一个看起来像这样的数据框。名称和列数不一致(有时' C'不会出现,其他时间" D',' E',' F&# 39;可能存在,等等。)
# name and number of columns varies...so need flexible process
A <- c(1, 2, 1, 2, 3, 2, 1, 1, 1, 2, 1, 4, 3, 1, 2, 2, 1, 2, 4, 8)
B <- c(5, 6, 6, 5, 3, 7, 2, 1, 1, 2, 7, 4, 7, 8, 5, 7, 6, 6, 4, 7)
C <- c(9, 1, 2, 2, 1, 4, 5, 6, 7, 8, 89, 9, 7, 6, 5, 6, 8, 9 , 67, 6)
ABC <- data.frame(A, B, C)
我想遍历每个变量并收集各种信息。这是一个简单的例子,但我正在做的事情会更复杂。我这样说,所以有人不推荐某种summary()类型的解决方案。
maximum_value <- max(A)
mean_value <- mean(A)
# lots of other calculations for A
ID = 'A'
tempA <- data.frame(ID, maximum_value, mean_value)
maximum_value <- max(B)
mean_value <- mean(B)
# lots of other calculations for B
ID = 'B'
tempB <- data.frame(ID, maximum_value, mean_value)
maximum_value <- max(C)
mean_value <- mean(C)
# lots of other calculations for C
ID = 'C'
tempC <- data.frame(ID, maximum_value, mean_value)
output <- rbind(tempA, tempB, tempC)
这是我尝试创建一个循环来逐个遍历变量和聚合输出。我无法弄清楚如何让[i]指向数据框ABC的单个列。
# initialize data frame
data__ <- data.frame(ID__ = as.character(),
max__ = as.numeric(),
mean__ = as.numeric())
# loop through A, then B, then C
for(i in A:C) {
ID__ <- '[i]'
max__ <- maximum[i]
mean__ <- mean[i]
data__temp <- (ID__, max__, mean__)
data__ <- rbind(data__, data__temp)
}
如果我在SAS中这样做,我会在proc sql中使用select into来创建一个变量名列表,然后编写一个数组,然后我就可以循环遍历它们了,但是有一些东西我在这里失踪了。
如何告诉R为数据框中的每个变量执行此过程?