【问题标题】:Convert character variables into numeric with R使用 R 将字符变量转换为数字
【发布时间】:2021-12-29 01:06:59
【问题描述】:

有史以来的第一个问题 ;)

重点是:我有这个数据集,但我开始时在 read.csv 函数中没有“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 警告信息: 强制引入的 NAs

CSV FILE

【问题讨论】:

  • 数字是否使用逗号作为十进制符号?还是每个字段有两个数字?
  • 这是一个语言环境吗?试试read.csv(..., dec=",")。 (仅供参考,read.csv 默认为 sep=","。)
  • 您可以从您的 CSV 文件中添加图像或复制粘贴吗?似乎它同时使用, 作为字段分隔符和小数分隔符,这会很奇怪。
  • @jpiversen 做到了 :)

标签: r variables character numeric


【解决方案1】:

我设法重现了您的问题。您的文件使用, 作为字段分隔符和小数分隔符(这并不常见)。

您可以通过在read.csv() 中指定小数为逗号(dec = ",")来解决您的问题,如下所示:

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

更改此设置,再次运行str(file),您应该会看到大多数列都是数字的。

【讨论】:

  • 非常感谢!!!
  • 不客气!如果我的回答对您有帮助,请考虑点击旁边的复选标记“接受”它。
猜你喜欢
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-13
  • 1970-01-01
  • 2014-04-10
  • 2016-04-26
相关资源
最近更新 更多