获取强制引入的NA在R中将数据类型从char更改为numeric时发出警告?

0x6upsns  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(148)

让我解释一下,
我有一个包含不同 Dataframe 的列表,为了进行分析,我需要纠正每个 Dataframe 的数据类型, Dataframe 中的所有数据都存储为字符,所以我想修复这个问题。但我没有对每个 Dataframe 都这样做,而是想使用一个循环。
首先我删除了不想更改为数字的列,然后我将它们更改为数字。然后我将这些列添加回去,年份是YYYY-YY格式的字符,因此我将其更改为日期,然后再更改为数字年份。

library("tidyverse")
temp_num_func <- function(x){
  as.numeric(x, digits = 4) 
}

for(i in 1:length(listofdf)){
  temp_df <- listofdf[[i]]  
  temp_df1 <- select(temp_df, -state_ut, -`_year`) #removed as all 
 #other columns are to be converted into numeric
  temp_df1 <- temp_df1 %>% mutate_if(is.character, temp_num_func)  
  temp_df2 <- select(temp_df, state_ut, `_year`) 
  temp_df2$`_year` <- as.Date(temp_df2$`_year`, format = "%Y") 
  temp_df2$`_year` <- as.numeric(format(temp_df2$`_year`, "%Y")) 
  listofdf[[i]] <- temp_df2 %>% add_column(temp_df1)
}

获取错误:
警告:强制引入的NAs警告:强制引入的NA警告:强制引入的NA警告:强制引入的NA警告:强制引入的NA警告:强制引入的NA警告:强制引入的NA警告:强制引入的NA警告:强制引入的NA警告:强制引入的NA警告:强制引入的NA警告:强制引入的NA警告:强制引入的NA警告:强制引入的NA警告:强制性引进的不适用
dput(head(temp_df1[1:4]))
输出:
构造(列表(仅主节点= c("88.68"、"91.21"、"96.95"、"89.74"、"100"、"100"),主节点与主节点= c("95.98"、"96.92"、"99.03"、"97.37"、"100"、"100"),主服务器具有主服务器秒小时秒= c("98.81"、"99.48"、"99.72"、"100"、"100"、"100"),u_主要_仅c("91.39"、"91.39"、"96.32"、"0"、"100"、"0")),行.名称= c(NA,6L),类=#"数据.帧")
dput(head(listofdf[[1]][1:4]))
构造(list(state_ut = c("安达曼和尼科巴群岛","安达曼和尼科巴群岛","安达曼和尼科巴群岛","安得拉邦","安得拉邦","安得拉邦"),_year = c("2013 - 14年"、"2014 - 15年"、"2015 - 16年"、"2013 - 14年"、"2014 - 15年"、"2015 - 16年"),仅小学= c("98.17"、"99.55"、"100"、"86.89"、"91.85"、"93.89"),主动脉与主动脉= c("98.68"、"98.77"、"100"、"94.53"、"96.07"、"97.02")),行名称= c(NA,6L),类=" Dataframe ")

7cjasjjr

7cjasjjr1#

我已经解决了改变存在于 Dataframe 列表中的 Dataframe 的数据类型的问题。

listofdf <- type.convert(listofdf, as.is = TRUE)

for(i in 1:length(listofdf)){
 listofdf[[i]]$`_year` <- as.Date(listofdf[[i]]$`_year`, format = "%Y") 
 listofdf[[i]]$`_year` <- as.numeric(format(listofdf[[i]]$`_year`, "%Y"))
}

Question中的所有代码都是无用的。

相关问题