【问题标题】:Convert dataframe numeric column to character [duplicate]将数据框数字列转换为字符[重复]
【发布时间】:2026-01-30 23:35:02
【问题描述】:

我有一个包含字符和数字列的数据框,稍后在绘制 PCA 时,我需要绘制字符列,因此我想将列“站”转换为字符。

数据框:

coldata <- data.frame(Location = c(West,West,East,East),
                          Station = c(1,2,3,4),
                          A = c("0.3","0.2","0.8","1"))

以及列的类型:

sapply(coldata, mode) location station A
    "character" "numeric" "numeric"

我想要这个:

sapply(coldata, mode) location station A
"character" "character" "numeric"

如果包含数字,可以将列标记为“字符”吗?还是我必须将数字转换为单词:即:1、2、3,4 为一、二、三、四?

我看到很多帖子将字符转换为数字,但没有将数字转换为字符。

【问题讨论】:

  • coldata$Station &lt;- as.character(coldata$Station)
  • 照常做coldata$Station &lt;- as.character(coldata$Station)
  • "4"4 不同,这里不需要拼出数字。
  • 是的 "1" 是一个字符,而 1 是一个数字(整数)。如果您只想修改一列,您可以像 Sotos 所说的那样做。这个问题是重复的。
  • 请注意,A 可能不是您可以相信的意义上的数字:当您加上引号时,它已作为因子导入,因此您不会有 0.3、0.2 等,但是1, 2, 3, 4(因子水平)(或者它只是你的例子中的一个错字,因为Location 缺少引号?)

标签: r


【解决方案1】:

我认为你可以做到这一点,而且应该可以:

coldata$Station<-as.character(coldata$Station)

【讨论】:

  • 巨嘴鸟和索托斯在 cmets 中是这么说的。
  • 有些人不认为先阅读它(比如我)我认为这样更好