簡體   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