-1
を取得しようとすると、エラー"Error in myData$ID1 : $ operator is invalid for atomic vectors"
が発生します。以下の関数を使用して、出力を修正してください。なんらかの理由で、この関数は継承された列名を取得しないため、エラーinvalid for atomic vectors
が発生します。function内のcolnameのベクトルでdata.tableにアクセス
したがって、継承された列名を正しく取得する方法と、このエラーを修正する方法はありますか?
#HOW TO DO THIS WITH apply below?
myData <- data.table(ID1=c("1;11","2;22","3;33"),ID2=c("a;b","c;d",";"))
readMyRow <- function(myData, myIndex)
{
#TODO: Error is here because col names not inherited, why?
s3<- strsplit(myData$`ID1`, split=";")
s4<- strsplit(myData$`ID2`, split=";")
return(paste(s3[[myIndex]], s4[[myIndex]], sep=";"))
}
#Combine all rows
myData$Combined <- apply(myData, 1, readMyRow)
正しい出力
myData <- data.table(ID1=c("1;11","2;22","3;33"),ID2=c("a;b","c;d",";"))
s3<- strsplit(myData$`ID1`, split=";")
s4<- strsplit(myData$`ID2`, split=";")
paste(s3[[1]], s4[[1]], sep=";")
paste(s3[[2]], s4[[2]], sep=";")
paste(s3[[3]], s4[[3]], sep=";")