r - 列名称中插入了句点,应该有空格

标签 r read.table

在由ggplot生成的图中,沿x轴的每个标签都是一个字符串,即“1990年的产品”。但是,生成的图在每个单词之间都有一个句点。换句话说,以上字符串显示为“the.product.in.1990”

如何确保以上“。”没有添加?

以下代码是我用来沿x轴的每个点添加字符串的代码

last_plot()+scale_x_discrete(limits=ddata$labels$text)

样例代码:
library(ggdendro)
x <- read.csv("test.csv",header=TRUE) 
d <- as.dist(x,diag=FALSE,upper=FALSE) 
hc <- hclust(d,"ave") 
dhc <- as.dendrogram(hc) 
ddata <- dendro_data(dhc,type="rectangle")
ggplot(segment(ddata)) + geom_segment(aes(x=x0,y=y0,xend=x1,yend=y1))
last_plot() + scale_x_discrete(limits=ddata$labels$text)
ddata$labels$text的每一行都是一个字符串,例如“1990年的产品”。
我想在生成的图中保留相同的格式,而不是“the.product.in.1990”

最佳答案

出现问题是因为您试图读取列名包含空格的数据。

当您使用read.csv读取此数据时,这些列名称将转换为语法上有效的R名称。这是说明问题的示例:

some.file <- '
    "Col heading A", "Col heading B"
    A, 1
    B, 2
    C, 3
    '

使用默认的read.csv设置进行阅读:
> x1 <- read.csv(text=some.file)
> x1
  Col.heading.A Col.heading.B
1             A             1
2             B             2
3             C             3
4                          NA
> names(x1)
[1] "Col.heading.A" "Col.heading.B"

为了避免这种情况,请使用参数check.names=FALSE:
> x2 <- read.csv(text=some.file, check.names=FALSE)
> x2
  Col heading A Col heading B
1             A             1
2             B             2
3             C             3
4                          NA
> names(x2)
[1] "Col heading A" "Col heading B"

现在,剩下的问题是列名不能包含空格。因此,要引用这些列,您需要将您的列名称包装在反引号中:
> x2$`Col heading A`
[1]     A     B     C      
Levels:          A     B     C

有关更多信息,请参见?read.csv,尤其是check.names的信息。
?Quotes中还有一些关于反引号的信息

关于r - 列名称中插入了句点,应该有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8434019/

相关文章:

r - 带有 ggplot2 的多个直方图 - 位置

r - 如何使用批处理文件运行R语言(.r)文件?

json - R Shiny - 在应用程序启动时创建全局数据框

r - 如何导入 .tsv 文件

read.delim() - 错误 "more columns than column names"和 "header and ' 'col.names"长度不同"

read.table 和解析 R 中的 float 据

r - 添加带有错误的弹出窗口,警告 Shiny

R 方差膨胀因子 - 警告 : No function found corresponding to methods exports from ‘SparseM’ for: ‘coerce’

r - read.table : ! header 中的错误:无效的参数类型

r - 使用 rbind() 在 lapply() 中将多个数据帧组合成一个更大的 data.frame