gpt4 book ai didi

r - 使用单独的数据框模板中定义的格式创建数据框

转载 作者:行者123 更新时间:2023-12-04 17:15:28 25 4
gpt4 key购买 nike

我正在创建多个数据框,我希望每个数据框中的列与我创建的空白数据框模板中指定的类型相同

例如我有一个空白模板

template <- data.frame(
char = character(),
int = integer(),
fac1 = factor(levels = c('level1', 'level2', 'level3')),
fac2 = factor(levels = c('level4', 'level5')),
stringsAsFactors = FALSE
)

然后我想创建一些数据框,但希望以模板的格式保留列(即 char 是一个字符,fac2 是一个具有两个级别“level4”和“level5”的因子)
df1 <- data.frame(
char = c('a', 'b'),
int = c(1,2),
fac1 = c('level2', 'level1'),
fac2 = c('level4', 'level4')
)

df2 <- data.frame(
char = c('c', 'd'),
int = c(3,4),
fac1 = c('level3', 'level4'),
fac2 = c('level5', 'level4')
)

我可以在创建时明显指定列类型 df1df2 ,但我想避免多次输入相同的内容,例如,如果某个因素的级别发生变化,我只想在一个地方更改它。

如果在不是级别的因素之一中创建了值(例如,上面“df2”中的“fac1”中的“级别 4”,则在转换为正确格式时应将其替换为 NA

最佳答案

也许您可以对数据框进行后处理:

df_template <- function(...) {
df <- data.frame(...)
df$char <- as.character(df$char)
df$int <- as.integer(df$int)
df$fac1 <- factor(df$fac1, levels = c('level1', 'level2', 'level3'))
df$fac2 <- factor(df$fac2, levels = c('level4', 'level5'))
df
}

关于r - 使用单独的数据框模板中定义的格式创建数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49532974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com