2017-03-11 7 views
1

数値型の変数を文字列や文字に変換する必要がないように、SQLクエリを使ってデータフレームを操作する別のパッケージがあるかどうか疑問に思っていました。R内部が別のデータ型を結合する

input_key <- c(9061,8680,1546,5376,9550,9909,3853,3732,9209) 
output_data <- data.frame(input_key) 

answer_product <- c("Water", "Bread", "Soda", "Chips", "Chicken",  "Cheese", "Chocolate", "Donuts", "Juice") 
answer_data <- data.frame(cbind(input_key, answer_product), stringsAsFactors  = FALSE) 

left_join(output_data,answer_data, by = "input_key") 

答えて

0

キーとして数値でもdplyr仕事からleft_join関数。

私はあなたの問題は 'cbind'関数から来ていると思います。なぜならその出力は1種類のデータ型しか格納できない行列なのですから。あなたの場合、数値はcharにキャストされます。 matrixとは対照的に、data.frameは、リストのような異なるタイプのデータを格納することができます。

キー列をchar型に変換されて、あなたのコードをフォーム:

> str(answer_data) 
'data.frame': 9 obs. of 2 variables: 
$ input_key  : chr "9061" "8680" "1546" "5376" ... 
$ answer_product: chr "Water" "Bread" "Soda" "Chips" ... 

をあなたとdata.frameを作成する代わりにした場合:キーcolunmは

> str(answer_data_2) 
'data.frame': 9 obs. of 2 variables: 
$ input_key  : num 9061 8680 1546 5376 9550 ... 
$ answer_product: chr "Water" "Bread" "Soda" "Chips" ... 
数値滞在

answer_data_2 <- data.frame(
    input_key = input_key, 
    answer_product = answer_product, 
    stringsAsFactors = FALSE 
) 

および

left_join(output_data,answer_data, by = "input_key") 

数字キーの操作

関連する問題