循环遍历每个变量并收集输出R.

时间:2017-05-12 13:36:28

标签: r loops

我有一个看起来像这样的数据框。名称和列数不一致(有时' 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为数据框中的每个变量执行此过程?

0 个答案:

没有答案