Modifié la question pour être plus clair comme demandé. Notez que les entrées sont fournies sous forme reproductible dans la note à la fin.R sqldf renommer un champ dans une instruction select
J'utilise sqldf pour joindre deux ensembles de données en R
Le code renvoie un ensemble de données avec le avec les noms de colonnes d'origine, ignorant le « comme » dans l'instruction select.
output_1 <- sqldf("SELECT a.MRN, a.TestDate, b.TestDate as Date2
from a
inner join b
on a.MRN=b.MRN order by a.MRN, a.TestDate")
donnant:
> sapply(output_1,colnames)
$MRN
NULL
$TestDate
NULL
$TestDate
NULL
> head(output_1)
MRN TestDate TestDate
1 10013 2013-09-10 2014-05-20
2 10013 2013-09-10 2014-05-20
3 10013 2013-09-10 2014-05-20
4 10013 2013-09-10 2014-11-18
5 10013 2013-09-10 2015-05-19
6 10013 2013-10-15 2014-05-20
Toute idée pourquoi, ou comment obtenir les noms de champs à droite dans la sortie?
Une solution de contournement que j'ai développé consiste à renommer TestDate dans le deuxième jeu de données (b) avant d'utiliser l'appel de jointure interne. Mais je préfère obtenir le "comme" pour travailler comme dans d'autres applications.
Des idées?
Veuillez noter que je me concentre uniquement sur le nom de la colonne. Et merci!
Note: Voici a
et b
sous forme reproductible:
Lines_a <- "MRN TestDate
10013 2013-09-10
10013 2013-10-15
10013 2013-11-19
10013 2014-05-20
10013 2014-11-18
10051 2010-02-10"
a <- read.table(text = Lines_a, header = TRUE)
Lines_b <- "MRN TestDate
10013 2014-05-20
10013 2014-05-20
10013 2014-05-20
10013 2014-11-18
10013 2015-05-19
10051 2010-05-26"
b <- read.table(text = Lines_b, header = TRUE)
S'il vous plaît montrer la tête 'a',' b' et 'output_1' – Tgsmith61591
Je reçois ces colonnes comme prévu:' NRM, TestDate, Date2' – zx8754
On dirait un problème local alors. Une idée de pourquoi cela se passe sur ma machine? Que devrais-je rechercher? –