簡體   English   中英

使用 R 將字符變量轉換為數字

[英]Convert character variables into numeric with R

有史以來的第一個問題;)

重點是:我有這個數據集,並且在 read.csv function 中沒有“stringsAsFactors=FALSE”。 我無法使用這些數據,因為我收到了警告消息:強制引入的 NA。 感謝您的幫助:)

rm(list=ls())

path <- "....."
file <- read.csv(path, header = TRUE, sep = ",", stringsAsFactors=FALSE)

str(file)
#'data.frame':  33 obs. of  11 variables:
#$ Var1: chr  "01/09/2021" "02/09/2021" "09/09/2021" "10/09/2021" ...
#$ Var2: chr  "mercoledì" "giovedì" "giovedì" "venerdì" ...
#$ Var3: chr  "2,5" "2,5" "2,5" "3,0" ...
#$ Var4: chr  "4,0" "0,0" "2,0" "3,0" ...
#$ Var5: chr  "2,0" "5,0" "5,0" "5,0" ...
#$ Var5: chr  "0,0" "0,0" "0,0" "0,0" ...
#$ Var6: chr  "6,0" "5,0" "7,0" "8,0" ...
#$ Var7: chr  "23,5" "25,0" "28,0" "32,0" ...
#$ Var8: chr  "0,0" "1,0" "5,0" "5,5" ...
#$ Var9: chr  "23,5" "26,0" "33,0" "37,5" ...
#$ Var10: chr  "67,0" "0,0" "0,0" "0,0" ...

as.numeric(file$Var7)

1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 警告信息:強制引入的 NA

CSV 文件

我設法重現了你的問題。 您的文件正在使用,作為字段分隔符和小數分隔符(這是不常見的)。

您可以通過在read.csv()中指定小數為逗號 ( dec = "," ) 來解決您的問題,如下所示:

read.csv(
  path, 
  header = TRUE, 
  sep = ",", 
  dec = ",", # I've added this line
  stringsAsFactors = FALSE
)

更改此設置,再次運行str(file) ,您應該會看到大多數列都是數字的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM