计算出我需要的统计数据,然后转换成我的最终格式。@DarthRatus-不客气。如果你觉得答案有帮助,请接受。 Test1 Test2 Test3 Power1 20 30 40 Power2 10 15 13 Max_Power1 3

计算出我需要的统计数据,然后转换成我的最终格式。@DarthRatus-不客气。如果你觉得答案有帮助,请接受。 Test1 Test2 Test3 Power1 20 30 40 Power2 10 15 13 Max_Power1 3,r,dataframe,R,Dataframe,计算出我需要的统计数据,然后转换成我的最终格式。@DarthRatus-不客气。如果你觉得答案有帮助,请接受。 Test1 Test2 Test3 Power1 20 30 40 Power2 10 15 13 Max_Power1 30 50 90 Max_Power2 50 80 40 Voltage1 1.2 1.2 1.2 Voltage2 1.3 1.3 1.3 Current1 1.0 1.2 1.3 Current2 2.0 2.1 2.2 rawD


计算出我需要的统计数据,然后转换成我的最终格式。@DarthRatus-不客气。如果你觉得答案有帮助,请接受。
     Test1 Test2 Test3 


Power1 20 30 40

Power2 10 15 13

Max_Power1 30 50 90

Max_Power2 50 80 40

Voltage1 1.2 1.2 1.2

Voltage2 1.3 1.3 1.3

Current1 1.0 1.2 1.3

Current2 2.0 2.1 2.2
rawData <- "Measurement  Test1 Test2 Test3 
Power1 20 30 40
Power2 10 15 13
Max_Power1 30 50 90
Max_Power2 50 80 40
Voltage1 1.2 1.2 1.2
Voltage2 1.3 1.3 1.3
Current1 1.0 1.2 1.3
Current2 2.0 2.1 2.2"

data <- read.table(text=rawData,header=TRUE,stringsAsFactors=FALSE)
# use rpgm package
library(rpgm)
rowMaxs(data[3:4,2:4])
rowMeans(data[c(1:2,5:6),2:4])
rowMins(data[7:8,2:4])
> library(rpgm)
> rowMaxs(data[3:4,2:4])
[1] 90 80
> rowMeans(data[c(1:2,5:6),2:4])
       1        2        5        6 
30.00000 12.66667  1.20000  1.30000 
> rowMins(data[7:8,2:4])
[1] 1 2
library(reshape2)
data <- read.table(text=rawData,header=TRUE,stringsAsFactors=FALSE)
data2 <- melt(data,id=c("Measurement"))
data3 <- dcast(data2,variable ~ Measurement)
colMeans(data3[,6:9])
colMins(data3[,2:3])
colMaxs(data3[,4:5])
> library(reshape2)
> data <- read.table(text=rawData,header=TRUE,stringsAsFactors=FALSE)
> data2 <- melt(data,id=c("Measurement"))
> data3 <- dcast(data2,variable ~ Measurement)
> colMeans(data3[,6:9])
  Power1   Power2 Voltage1 Voltage2 
30.00000 12.66667  1.20000  1.30000 
> colMins(data3[,2:3])
[1] 1 2
> colMaxs(data3[,4:5])
[1] 90 80
avg <- mean
fun <- c("avg", "avg", "max", "max", "avg", "avg", "min", "min")
n <- nrow(test)
rows <- split(as.matrix(test), 1:n)
transform(test, Value = mapply(function(fun, x) match.fun(fun)(x), fun, rows), Stat = fun)
           Test1 Test2 Test3    Value Stat
Power1      20.0  30.0  40.0 30.00000  avg
Power2      10.0  15.0  13.0 12.66667  avg
Max_Power1  30.0  50.0  90.0 90.00000  max
Max_Power2  50.0  80.0  40.0 80.00000  max
Voltage1     1.2   1.2   1.2  1.20000  avg
Voltage2     1.3   1.3   1.3  1.30000  avg
Current1     1.0   1.2   1.3  1.00000  min
Current2     2.0   2.1   2.2  2.00000  min
stats <- function(x) c(Min = min(x), Avg = mean(x), Max = max(x))
cbind(test, t(apply(test, 1, stats)))
           Test1 Test2 Test3  Min       Avg  Max
Power1      20.0  30.0  40.0 20.0 30.000000 40.0
Power2      10.0  15.0  13.0 10.0 12.666667 15.0
Max_Power1  30.0  50.0  90.0 30.0 56.666667 90.0
Max_Power2  50.0  80.0  40.0 40.0 56.666667 80.0
Voltage1     1.2   1.2   1.2  1.2  1.200000  1.2
Voltage2     1.3   1.3   1.3  1.3  1.300000  1.3
Current1     1.0   1.2   1.3  1.0  1.166667  1.3
Current2     2.0   2.1   2.2  2.0  2.100000  2.2
test <- structure(list(Test1 = c(20, 10, 30, 50, 1.2, 1.3, 1, 2), 
Test2 = c(30, 15, 50, 80, 1.2, 1.3, 1.2, 2.1), Test3 = c(40, 13, 90, 40, 1.2, 
1.3, 1.3, 2.2)), .Names = c("Test1", "Test2", "Test3"), 
class = "data.frame", row.names = c("Power1", 
"Power2", "Max_Power1", "Max_Power2", "Voltage1", "Voltage2", "Current1", "Current2"))