r - 如何在数据框列表中使用 log() 转换并执行 aov()?
问题描述
我希望有一个人可以帮助我。我正在尝试将我的数据Weight
和Height
数据转换为遵循正态分布,并在每个数据帧中对其进行方差分析。但是,我无法使用转换后的值将新列附加到原始数据框。和因素在分析中很重要Person
。Age
我有这个数据
df_list <- list(
`1.3.A` =
tibble::tribble(
~Person, ~Height, ~Weight, ~Age,
"Alex", 175L, 75L, 15,
"Gerard", 180L, 85L, 17,
"Clyde", 179L, 79L, 19,
"Alex", 175L, 75L, 22,
"Gerard", 180L, 85L, 21,
"Clyde", 179L, 79L, 20
),
`2.2.A` =
tibble::tribble(
~Person, ~Height, ~Weight, ~Age,
"Alex", 175L, 75L, 18,
"Gerard", 180L, 85L, 18,
"Clyde", 179L, 79L, 19,
"Alex", 175L, 75L, 25,
"Gerard", 180L, 85L, 27,
"Clyde", 179L, 79L, 26
),
`1.1.B` =
tibble::tribble(
~Person, ~Height, ~Weight, ~Age,
"Alex", 175L, 75L, 22,
"Gerard", 180L, 85L, 23,
"Clyde", 179L, 79L, 25,
"Alex", 175L, 75L, 27,
"Gerard", 180L, 85L, 18,
"Clyde", 179L, 79L, 19
)
)
失败的尝试是:
russia <- lapply(df_list, (function(x) log10(Age)))
greece <- function(df){
mutate(df, transformed_Age = log10(df$Age))
}
spain <- lapply(df_list, greece)
View(spain)
arkansas <- df_list
canada <- function(df){
log10(as.numeric(df$Age))
}
arkansas <- lapply(df_list, canada)
View(arkansas)
我也想尝试其他的转换,所以我希望有人能启发我如何做到这一点。我尝试了 boxcox 转换但失败了。
解决方案
您可以使用 -
cols <- c('Height', 'Weight')
df_list <- lapply(df_list, function(x) {x[cols] <- log10(x[cols]);x})
df_list
#$`1.3.A`
# A tibble: 6 x 4
# Person Height Weight Age
# <chr> <dbl> <dbl> <dbl>
#1 Alex 2.24 1.88 15
#2 Gerard 2.26 1.93 17
#3 Clyde 2.25 1.90 19
#4 Alex 2.24 1.88 22
#5 Gerard 2.26 1.93 21
#6 Clyde 2.25 1.90 20
#$`2.2.A`
# A tibble: 6 x 4
# Person Height Weight Age
# <chr> <dbl> <dbl> <dbl>
#1 Alex 2.24 1.88 18
#2 Gerard 2.26 1.93 18
#3 Clyde 2.25 1.90 19
#4 Alex 2.24 1.88 25
#5 Gerard 2.26 1.93 27
#6 Clyde 2.25 1.90 26
#$`1.1.B`
# A tibble: 6 x 4
# Person Height Weight Age
# <chr> <dbl> <dbl> <dbl>
#1 Alex 2.24 1.88 22
#2 Gerard 2.26 1.93 23
#3 Clyde 2.25 1.90 25
#4 Alex 2.24 1.88 27
#5 Gerard 2.26 1.93 18
#6 Clyde 2.25 1.90 19
如果您想保留原始列并使用转换后的值创建新列
cols <- c('Height', 'Weight')
new_cols <- paste0('new_', cols)
df_list <- lapply(df_list, function(x) {x[new_cols] <- log10(x[cols]);x})
df_list
推荐阅读
- discord.js - 在制定允许人们打开和关闭黑名单的命令时遇到问题
- sql-server - 如果除一列之外的所有值都相等,则显示一行
- python - 如何正确打包python依赖项
- python - 从其他目录中的 py 文件导入函数时出错
- python - pyodbc/sql - 新创建的表将进入主数据库而不是指定数据库
- google-drive-api - 为什么在google-api-services-drive中使用共享驱动器的fileId时“找不到文件”?
- python - 将数据类序列化为 dict 时属性未出现
- c - 如何有效地将一组字符串写入命名管道?
- html - 在移动应用中滚动时,使用什么 CSS 规则来消除烦人的水平空白?
- python - 得到了一个奇怪的 ROC 曲线和分类器的 AUC