【问题标题】:importing data with non-standard characters导入非标准字符的数据
【发布时间】:2014-07-08 01:45:13
【问题描述】:

我正在使用read.table() 导入数据,但我的某些列名包含下标文本(由导出数据的机器自动设置)。 R 可以很好地读取列名,但它会像这样出现:

> df <- read.table(file)
> df
  Col1    Col2    Cт    Cт.Mean

当我尝试访问“Cт”列 (df$CT) 时,R 无法识别该特定列,因为我没有输入 df$Cт。有没有办法解决这个问题,以便在我导入数据时,R 可以自动将非标准字符转换为常规文本?

【问题讨论】:

  • 这会导致问题吗?通常,R 会自动“清理”列名,用句点替换“坏”字符。也许您可以更具体地了解正在发生的事情以及您希望发生的事情。

标签: r import


【解决方案1】:

我将假设“标准字符”是指 ASCII 字符。如果您只是将这些值转换为 ASCII 值,用句点替换非 ASCII 值怎么样。这是可能的

names(df) <- iconv(names(df), from="UTF-8",to="ASCII",".")

有一些样本数据

a <- c("Col1","Col2","Cт","Cт.Mean")
iconv(a, "UTF-8","ASCII",".")
# [1] "Col1"     "Col2"     "C.."      "C...Mean"

【讨论】:

  • 啊,是的,谢谢,这行得通。你知道为什么它用两个 '.' 代替每个非 ASCII 字符吗?还是我选择的任何其他角色?
  • 许多非 ASCII 字符实际上是用 UTF-8 中的两个字节编码的,而每个 ASCII 字符都是一个字节。所以它实际上是将双字节 UTF-8 拆分为两个单字节 ASCII 值。您可以使用gsub() 将“..”替换为“.”如果你喜欢。
猜你喜欢
  • 2018-02-18
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 2016-08-22
  • 2012-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多