Mih*_*iha 1 r type-conversion dataframe tibble
我有很多专栏文章。我不想一一更改。比方说,tible看起来像这样:
df <- tibble(
x = c(1,0,1,1,'a'),
y = c('A', 'B', 1, 'D', 'A'),
z = c(1/3, 4, 5/7, 100, 3)
)
Run Code Online (Sandbox Code Playgroud)
我想根据其他标题中的值转换其列类型:
df_map <- tibble(
col = c('x','y','z'),
col_type = c('integer', 'string', 'float')
)
Run Code Online (Sandbox Code Playgroud)
什么是最合适的解决方案?
请尝试以下操作:
library(purrr)
map2_dfc(df, df_map$col_type, type.convert, as.is = T)
Run Code Online (Sandbox Code Playgroud)
这段代码假定它df_map$col的顺序names(df)与之相同(感谢@Moody_Mudskipper指出了这一点)。
正如@NelsonGon指出的那样,R中合适的数据类型是“整数”,“字符”和“双精度”。
根据注释中的要求进行编辑以包含布尔变量的先前修改:
library(purrr)
map2_dfc(df, df_map$col_type, type.convert, as.is = T)
Run Code Online (Sandbox Code Playgroud)