1

我进行了实验,使用参数组合,收集平均力和扭矩(在 x、y 和 z 方向上)。我为每个参数组合做了四次重复,总共有 432 个参数组合。

实际数据集有点太大,无法包含在此处,因此我制作了一个子集以用于测试目的,并将其与相关的 R 脚本一起上传到dropbox 。

这是一个经过大量解析的版本:

> data2[1:20,1:8]
# A tibble: 20 x 8
   `Foil Color` `Flow Speed (rpm)` `Frequency (Hz)` StepTime Maxpress Minpress `Minpress Percentage`      FxMean
         <fctr>             <fctr>           <fctr>   <fctr>   <fctr>    <int>            <fctr>       <dbl>
 1        Black                  0             0.25      250       50        0                 0 0.014537062
 2        Black                  0             0.25      250       50        0                 0 0.014870256
 3        Black                  0             0.25      250       50        0                 0 0.013180870
 4        Black                  0             0.25      250       50        0                 0 0.013448804
 5        Black                  0             0.25      250       50        3              0.05 0.012996979
 6        Black                  0             0.25      250       50        3              0.05 0.012115166
 7        Black                  0             0.25      250       50        3              0.05 0.012427347
 8        Black                  0             0.25      250       50        3              0.05 0.012561253
 9        Black                  0             0.25      250       50        5               0.1 0.012480644
10        Black                  0             0.25      250       50        5               0.1 0.011603403
11        Black                  0             0.25      250       50        5               0.1 0.011427116
12        Black                  0             0.25      250       50        5               0.1 0.011545803
13        Black                  0             0.25      250       50       13              0.25 0.009891865
14        Black                  0             0.25      250       50       13              0.25 0.008465604
15        Black                  0             0.25      250       50       13              0.25 0.009089619
16        Black                  0             0.25      250       50       13              0.25 0.008560160
17        Black                  0             0.25      250       75        0                 0 0.025101186
18        Black                  0             0.25      250       75        0                 0 0.023611920
19        Black                  0             0.25      250       75        0                 0 0.026276007
20        Black                  0             0.25      250       75        0                 0 0.026593895

我正在尝试按参数组合对数据进行分组,并计算该组 4 个重复的平均 FxMean、sd 和 se。

我尝试遵循教程和其他示例,人们试图总结数据(示例),但这对我不起作用。它通常会吐出一个看起来与我需要的完全不同的数组。

例如:

fx_data2 <- ddply(data_csv, c(data_csv$`Frequency (Hz)`,data_csv$`Flow Speed (rpm)`, data_csv$StepTime, data_csv$Maxpress, data_csv$`Minpress Percentage`), summarise,
N    = length(data_csv$FxMean),
mean = mean(data_csv$FxMean),
sd   = sd(data_csv$FxMean),
se   = sd / sqrt(N)

)

fx_data3 <- summaryBy(FxMean ~freq + foilColor+maxP+minPP, data=data_csv, FUN=c(length, mean, sd))

fx_data2 看起来只是……糟糕透了。

head(fx_data2)
....
Foil Color.2530 Foil Color.2531 Foil Length.2512 Foil Length.2513 Foil 
Length.2514 Foil Length.2515 Flow Speed (rpm).2544 Flow Speed (rpm).2545
Flow Speed (rpm).2546 Flow Speed (rpm).2547 Frequency (Hz).800 Frequency 
(Hz).801 Frequency (Hz).802 Frequency (Hz).803 Foil Color.2532 Foil Color.2533
Foil Color.2534 Foil Color.2535 Foil Length.2516 Foil Length.2517 Foil 
Length.2518 Foil Length.2519 Flow Speed (rpm).2548 Flow Speed (rpm).2549
Flow Speed (rpm).2550 Flow Speed (rpm).2551 Frequency (Hz).804 Frequency 
(Hz).805 Frequency (Hz).806 Frequency (Hz).807 Foil Color.2536 Foil Color.2537

我是说。我不知道这是怎么回事。尺寸为 24x8724。只是……什么。

fx_data3 看起来像这样:

> fx_data3
  FxMean.length FxMean.mean  FxMean.sd
 1          1744  0.01379712 0.01423244
> 

理想情况下,这些看起来像原始数据集,但每个参数组合都被压缩为一行,最右边的值将是四个重复的 FxMean、FxStDev 等的均值、sd 和 se .

这几天我一直在为此苦苦挣扎。我非常感谢一些帮助。

谢谢你,赞恩

4

2 回答 2

0
url <- "https://www.dropbox.com/sh/vhf39uz4pol7sgl/AAAJ9Fr6OTEIgb_ZeSno-X5ea?dl=1"
download.file(url, destfile = "from-SO-via-dropbox")
unzip("from-SO-via-dropbox")
df <- readr::read_csv("Data_subset.csv")

library(dplyr)

df %>% 
  group_by(`Frequency (Hz)`, `Foil Color`, StepTime, Maxpress, `Minpress Percentage`) %>% 
  summarise_at(vars(FxMean), funs(N = length, mean, sd, se = sd(.) / sqrt(N)))

# # A tibble: 13 x 9
# # Groups:   Frequency (Hz), Foil Color, StepTime, Maxpress [?]
#    `Frequency (Hz)` `Foil Color` StepTime Maxpress `Minpress Percentage`     N        mean           sd           se
#               <dbl>        <chr>    <int>    <int>                 <dbl> <int>       <dbl>        <dbl>        <dbl>
#  1             0.25        Black      250       50                  0.00     4 0.014009248 0.0008206156 0.0004103078
#  2             0.25        Black      250       50                  0.05     4 0.012525186 0.0003658681 0.0001829340
#  3             0.25        Black      250       50                  0.10     4 0.011764241 0.0004832082 0.0002416041
#  4             0.25        Black      250       50                  0.25     4 0.009001812 0.0006538297 0.0003269149
#  5             0.25        Black      250       75                  0.00     4 0.025395752 0.0013514463 0.0006757231
#  6             0.25        Black      250       75                  0.05     4 0.020794212 0.0028703242 0.0014351621
#  7             0.25        Black      250       75                  0.10     4 0.018409500 0.0037305138 0.0018652569
#  8             0.25        Black      250       75                  0.25     4 0.016193536 0.0016200530 0.0008100265
#  9             0.25        Black      250      100                  0.00     4 0.035485324 0.0052513208 0.0026256604
# 10             0.25        Black      250      100                  0.05     4 0.050097709 0.0024123653 0.0012061827
# 11             0.25        Black      250      100                  0.10     4 0.051378181 0.0049857712 0.0024928856
# 12             0.25        Black      250      100                  0.25     4 0.039374874 0.0031421884 0.0015710942
# 13             0.50        Black      250       50                  0.00     2 0.014778494 0.0004683882 0.0003312005
于 2017-12-06T17:14:06.403 回答
0

您要分组哪些参数?只需将它们插入下面的代码片段中即可代替 param1、param2 等

你可以使用dplyr

library(dplyr)

data %>% 
  group_by(param1, param2, param3) %>% 
  summarise(mean = mean(FxMean), 
            sd = sd(FxMean),
            se = sd/n())
于 2017-12-06T15:47:32.393 回答