如何访问具有特殊字符或空格的数据表列?

时间:2015-09-07 22:58:14

标签: r data.table

我有以下data.table:

g1 <- ggplot(CPU_ALL, aes(x = interaction(CPU_AL$Date, CPU_ALL$Time)
        , y = CPU_ALL$User%)) +
        geom_line() + 
        geom_point() +
        expand_limits(y=0) +
        xlab('Date/Time') + ylab('CPU Utilization (%)') +
        ggtitle('CPU ALL')

我试图使用以下代码绘制图形:

anobre@segall:nmon$ CPU_ALL.R CPU_ALL_nmon.csv  
Error: unexpected input in: "g1 <- ggplot(CPU_ALL, aes(x = interaction(Date, Time)
        , y = User%)) +" Execution halted

运行后,我收到以下消息:

User%

我认为问题是当我尝试访问列Sys%Wait%Idle%CPU_ALL[,Date]时。当我CPU_ALL[,User%]时它工作正常,但当我尝试anobre@segall:nmon$ CPU_ALL.R CPU_ALL_nmon.csv Error: unexpected input in "CPU_ALL[,User%]" Execution halted 时,我收到以下错误消息:

{{1}}

有没有人知道如何在data.table中使用特殊字符或空格来访问列名?

3 个答案:

答案 0 :(得分:2)

您可以使用反引号draw.on('drawend', function(evt){ var feature = evt.feature; feature.setId(some_uniq_id); //do you want to set other properties? feature.setProperties({ name: 'some_name' }); });  标志。

`

它也适用于太空。

答案 1 :(得分:0)

如果您的列名称包含特殊字符,请用双引号""

包装

工作脚本

g1 <- ggplot(CPU_ALL, aes(x = interaction(CPU_ALL$Date, CPU_ALL$Time)
                          , y = CPU_ALL$"User%")) +
    geom_line() + 
    geom_point() +
    expand_limits(y=0) +
    xlab('Date/Time') + ylab('CPU Utilization (%)') +
    ggtitle('CPU ALL')

如果您使用read.table函数和param check.names=TRUE从文件中读取它,这是该参数的btw默认值,它会自动将您的数据转换为

          Date     Time User. Sys. Wait. Idle. Busy PhysicalCPUs
1: 01-APR-2015 00:15:28   0.7  0.9   0.1  98.4   NA           64
2: 01-APR-2015 00:30:32   0.7  0.9   0.3  98.1   NA           64
3: 01-APR-2015 00:45:39   0.5  0.7   0.3  98.4   NA           64
4: 01-APR-2015 01:00:46   0.6  0.8   0.3  98.3   NA           64
5: 01-APR-2015 01:15:51   0.5  0.7   0.1  98.6   NA           64

查看%符号如何转换为.然后您可以直接访问列而不用双引号括起来。

g1 <- ggplot(CPU_ALL, aes(x = interaction(CPU_ALL$Date, CPU_ALL$Time)
                          , y = CPU_ALL$User.)) +
    geom_line() + 
    geom_point() +
    expand_limits(y=0) +
    xlab('Date/Time') + ylab('CPU Utilization (%)') +
    ggtitle('CPU ALL')

希望这有帮助。

答案 2 :(得分:-1)

尝试使用引号:CPU_ALL[,'User%']