[英]Way to convert a list of dataframes to a list of character vectors in 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.frame
的matrix
路径并不理想,有时也不正确(因为matrix
只能有一个 class 而data.frame
列可以是不同的类型)。 最简单的选择是将rep
NA_character_
n
次以创建具有n
行的单列data.frame
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.