一貫性を保つために、マージする前に列名の大文字と小文字を変更すると便利な場合があります。これを使用する場合、data.frame
これは非常に簡単です(ここで概説されているように)。同じ解決策が ``data.table` でも機能しますが、警告がスローされます。例えば、
ran <- rep(34,50)
dom <- rep("cat",50)
table <- rep("pig", 50)
DT <- data.table(ran,dom,table); head(DT)
ran dom table
1: 34 cat pig
2: 34 cat pig
3: 34 cat pig
4: 34 cat pig
5: 34 cat pig
6: 34 cat pig
##the data.frame way
names(DT) <- toupper(names(DT))
##the error
Warning message:
In `names<-.data.table`(`*tmp*`, value = c("RAN", "DOM", "TABLE" :
The names(x)<-value syntax copies the whole table. This is due to <- in R
itself. Please change to setnames(x,old,new) which does not copy and is faster.
See help('setnames'). You can safely ignore this warning if it is inconvenient
to change right now. Setting options(warn=2) turns this warning into an error,
so you can then use traceback() to find and change your names<- calls.
エラーを回避するために次の回避策を使用しました。広いデータセットでははるかに高速ですが、data.table
これを行う方法はありますか?
##the work around
upper <- toupper(names(DT))
setnames(DT,upper);head(DT)
RAN DOM TABLE
1: 34 cat pig
2: 34 cat pig
3: 34 cat pig
4: 34 cat pig
5: 34 cat pig
6: 34 cat pig