计算出我需要的统计数据,然后转换成我的最终格式。@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"))