Создать имена столбцов с пробелами - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь создать DF со столбцами, в именах которых есть пробелы, но появляется ошибка. Это DF, который я пытаюсь создать:

CITY <- c('NEW YORK', 'LONDON', 'SAN FRANCISCO', 'MADRID',  'LOS ANGELES', 'LISBON', 'RIO DE JANEIRO', 'MOSCOW',  'SAO PAULO', 'TOKIO')
NEW YORK <- c(0, 700, 250, 1000, 400, 800, 430, 900, 500, 30)
LONDON <- c(700, 0, 350, 1200, 50, 110, 780, 984, 1150, 5)
SAN FRANCISCO <- c(250, 350, 0, 200, 15, 260, 305, 412, 29, 102)
MADRID <- c(1000, 1200, 200, 0, 77, 115, 225, 318, 412, 511)
LOS ANGELES <- c(400, 50, 15, 77, 0, 88, 819, 733, 978, 1001)
LISBON <- c(800, 110, 260, 115, 88, 0, 17, 3000, 1418, 735)
RIO DE JANEIRO <- c(430, 780, 305, 225, 819, 17, 0, 513, 701, 56)
MOSCOW <- c(900, 984, 412, 318, 733, 3000, 513, 0, 389, 499)
SAO PAULO <- c(500, 1150, 29, 412, 978, 1418, 701, 389, 0, 1113)
TOKIO <- c(30, 5, 102, 511, 1001, 735, 56, 499, 1113, 0)
DF <- data.frame(CITY, NEW YORK, LONDON, SAN FRANCISCO, MADRID,  LOS ANGELES, LISBON, RIO DE JANEIRO, MOSCOW,  SAO PAULO, TOKIO)

Это сообщение об ошибке:

Error: unexpected symbol in "NEW YORK"

Как мне решить этот пример моей проблемы? В DF, над которым я работаю, есть несколько столбцов, как в этом примере, поэтому я хотел бы предложить решение, которое может охватывать несколько столбцов.

1 Ответ

1 голос
/ 15 октября 2019

Имена переменных не могут иметь пробелов, поскольку они будут интерпретироваться как отдельные токены, отсюда и ваша ошибка. Я изменил ваш пример так, чтобы он был как можно ближе к тому, что вы хотите:

CITY <- c('NEW YORK', 'LONDON', 'SAN FRANCISCO', 'MADRID',  'LOS ANGELES', 'LISBON', 'RIO DE JANEIRO', 'MOSCOW',  'SAO PAULO', 'TOKIO')
NEW_YORK <- c(0, 700, 250, 1000, 400, 800, 430, 900, 500, 30) 
LONDON <- c(700, 0, 350, 1200, 50, 110, 780, 984, 1150, 5)
SAN_FRANCISCO <- c(250, 350, 0, 200, 15, 260, 305, 412, 29, 102)
MADRID <- c(1000, 1200, 200, 0, 77, 115, 225, 318, 412, 511)
LOS_ANGELES <- c(400, 50, 15, 77, 0, 88, 819, 733, 978, 1001)
LISBON <- c(800, 110, 260, 115, 88, 0, 17, 3000, 1418, 735)
RIO_DE_JANEIRO <- c(430, 780, 305, 225, 819, 17, 0, 513, 701, 56) 
MOSCOW <- c(900, 984, 412, 318, 733, 3000, 513, 0, 389, 499)
SAO_PAULO <- c(500, 1150, 29, 412, 978, 1418, 701, 389, 0, 1113)
TOKIO <- c(30, 5, 102, 511, 1001, 735, 56, 499, 1113, 0)
DF <- data.frame(CITY, `NEW YORK` = NEW_YORK, LONDON, `SAN FRANCISCO` = SAN_FRANCISCO, MADRID,  `LOS ANGELES` = LOS_ANGELES, LISBON, `RIO DE JANEIRO` = RIO_DE_JANEIRO, MOSCOW,  `SAO PAULO` = SAO_PAULO, TOKIO, check.names = FALSE)

Параметр check.names = FALSE должен запретить R исключать пробелы в именах столбцов, спасибо @MrFlick!

print(DF)
             CITY NEW YORK LONDON SAN FRANCISCO MADRID LOS ANGELES LISBON RIO DE JANEIRO MOSCOW SAO PAULO TOKIO
1        NEW YORK        0    700           250   1000         400    800            430    900       500    30
2          LONDON      700      0           350   1200          50    110            780    984      1150     5
3   SAN FRANCISCO      250    350             0    200          15    260            305    412        29   102
4          MADRID     1000   1200           200      0          77    115            225    318       412   511
5     LOS ANGELES      400     50            15     77           0     88            819    733       978  1001
6          LISBON      800    110           260    115          88      0             17   3000      1418   735
7  RIO DE JANEIRO      430    780           305    225         819     17              0    513       701    56
8          MOSCOW      900    984           412    318         733   3000            513      0       389   499
9       SAO PAULO      500   1150            29    412         978   1418            701    389         0  1113
10          TOKIO       30      5           102    511        1001    735             56    499      1113     0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...