2017-03-16 245 views
0

在我的excel文档中,我使用的是“通信模式”,在该列中使用空格,“In Person”或斜线“IM /聊天”。R - 在变量和列名中带空格和'/'的问题

这些不断抛出的错误:

  • 错误的eval(表达式,ENVIR,enclos):对象In.Person'未找到
  • 同为IM /聊天

我尝试使用In.Person或IM.Chat,但他们提出错误。代码是:

png(filename="Number of Interactions by Communication Mode.png") 
person <- subset(desktracker, Mode.of.Communication="") 
ByChat <- ggplot(subset(desktracker, IM.Chat!=""), aes(x=IM.Chat)) + 
    geom_bar() + 
    theme_bw() + 
    ylab("Number of Interactions") + 
    xlab("By Chat") + 
    theme(axis.title.y = element_text(color = "red")) 
ByPerson <- ggplot(subset(person, In.Person =""), aes(x=In.Person)) + 
    geom_bar() + 
    theme_bw()+ 
    ylab("Number of Interactions") + 
    xlab("In Person") 
grid.arrange(ByChat, ByPerson, ByPhone, main="Number of Interactions by  Communication Mode 
      for Reference 2016") 
dev.off() 

我是R的新手,并且在某人离开后接手了这个项目。到目前为止,我试图改变我在R中写入“In Person”或“IM/Chat”的方式,以不同程度在“In.Person”或“IM.Chat”中取得成功。也许有一个通配符,我可以使用IM /聊天来克服'/'?我试着改变它在Excel表格中的显示方式为“In_Person”,只是“聊天”,导致了相同的错误。我会继续乱搞,但会欢迎任何建议。如果我找到一个解决方案,我一定会发布解决方案。

感谢

对不起,desktracker是我用来打开数据集的变量:

Excel section for Chat

Column Names

setwd("Z:/DesktrackR/Ref_Semester") 
file = "Desk_Tracker_flat_8-17-15_through_5-9-16.csv" 
desktracker <- read.csv(file, sep=",") 

了Excel的内容的想法

+0

没有至少约desktracker的内容的想法,这是不可能的回答。请记住,如果要避免这些问题,数据框中变量的名称不应包含空格或点以外的特殊字符。 –

+0

在句法上无效的变量名称,例如带空格或特殊符号的变量名称,可以通过反引号''在ggplot2中使用。 – aosmith

回答

0

我看不到你的v良莠不齐的名字,但我建议,如果你有你更正数据帧的列名头:

colnames(desktracker) <- gsub(" |/", '.', colnames(desktracker)) 

,将与一期替代空间或/,这样你就可以访问的变量容易。

注:请确保您有headers = TRUEread.csv(),如:

setwd("Z:/DesktrackR/Ref_Semester") 
file = "Desk_Tracker_flat_8-17-15_through_5-9-16.csv" 
desktracker <- read.csv(file, sep=",", headers = TRUE)