Я новичок в SQL и не понимаю, почему имя переменной меняется, когда я пытаюсь преобразовать переменную в текст, а не в числовое значение.
Я использую RSQLite, и я хотел бы извлечь несколько столбцов из моего соединения dbi и преобразовать несколько переменных в текстовый тип.
Вот мой код:
head5_query <- dbSendQuery(con,"SELECT studyid,
candidategroup,
submissionmonth,
submissionyear,
CAST(membercounty AS TEXT),
CAST(serviceprovidercounty AS TEXT),
CAST(admissionsource AS TEXT)
FROM medicalClaims WHERE studyid IS NOT NULL AND dateofservicetomonth = 1 AND dateofservicetoyear = 2011 LIMIT 5")
head_query = dbFetch(head5_query,n = -1)
head_query
что дает мне:
> head_query
studyid candidategroup submissionmonth submissionyear CAST(membercounty AS TEXT) CAST(serviceprovidercounty AS TEXT)
1 145311.10 1 2 2014 Bristol Suffolk
2 36458.10 1 5 2014 Suffolk Suffolk
3 12403.17 1 2 2014 <NA> Suffolk
4 12403.16 1 2 2014 <NA> Suffolk
5 12403.15 1 2 2014 <NA> Suffolk
CAST(admissionsource AS TEXT) medicalclaimid apcdidcode
1 <NA> 22778326 4
2 2.0 46829274 0
3 1.0 64643334 0
4 1.0 64643334 0
5 1.0 64643334 0
Например, если имя переменной изменилось на CAST(countycounty AS TEXT). Однако похоже, что тип переменной изменился на текст:
> class(head_query$`CAST(admissionsource AS TEXT)`)
[1] "character"
Как изменить тип переменной без изменения имени переменной?
Огромное спасибо!
Вам нужно ALIAS
свои столбцы (они не являются переменными в вашем SELECT
заявлении) при использовании функции для их изменения.
https://www.tutorialspoint.com/sqlite/sqlite_alias_syntax.htm
Это сработало для меня. Спасибо @Эдвард!
head5_query <- dbSendQuery(con,"SELECT mc.studyid, mc.candidategroup, mc.submissionmonth, mc.submissionyear,CAST(mc.membercounty AS TEXT) AS membercounty,CAST(mc.serviceprovidercounty AS TEXT) AS serviceprovidercounty, CAST(mc.admissionsource AS TEXT) AS admissionsource FROM medicalClaims AS mc WHERE studyid IS NOT NULL AND dateofservicetomonth = 1 AND dateofservicetoyear = 2011 LIMIT 5")