繁体   English   中英

将数据帧列表中的列结构转换为 R 中的字符

[英]Convert structure of columns in list of dataframes to character in R

我正在创建一个空的数据帧列表,稍后我将使用 lapply 将其 append

library(tidyverse)
library(dplyr)
library(purrr)

my.list <- lapply(1:192, function(x, nr = 468, nc = 1) {   data.frame(symbol = matrix(nrow=nr, ncol=nc)) })
str(my.list)

如果您获得 my.list 的结构,您会注意到每个 dataframe 中的列结构是“逻辑的”。 我希望每个 dataframe 中的列结构是字符而不是逻辑。

我可以在上面的 lapply function 中更改任何内容,以便生成的数据帧列表中的列是字符吗? 或者我将如何最好地完成这项任务? 我正在创建这个空的数据帧列表,因为我知道 R 如果不必经常使用 append 文件,它的工作速度会更快。 因此,我的下一步是执行 map function 以使用字符数据填充此数据帧列表中的每个 dataframe。

问题是通过创建NA ,默认情况下它是NA_logical_ 如果我们想创建一个字符列,请使用NA_character_ 在这里,我们可以修复

my.list <- lapply(my.list, function(x) {x[] <- lapply(x, as.character); x})

或者在创建data.frame列时,使用

my.list <- lapply(1:192, function(x) data.frame(symbol = rep(NA_character_, 468)))

获取单列data.framematrix路径并不理想,有时也不正确(因为matrix只能有一个 class 而data.frame列可以是不同的类型)。 最简单的选择是将rep NA_character_ n次以创建具有n行的单列data.frame

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM