(Rで)水平にすべての行をマージされていないわからない:私はRで2つのデータフレームを持っている理由(マージ)
私は関係なく、作物が中に表示されるかどうかのコラム「クロップ」によってそれらをマージしたいag<-structure(list(Crop = c("beans", "chayote", "chives", "chiwa squash",
"cilantro", "corn", "epazote", "flower chiwa squash", "jicama",
"macal", "onion", "papaya", "pineapple", "plantain", "red onion",
"scallions", "solanum americanum ", "sugar cane", "sweet potato",
"tomato", "yam", "yuca"), kg = c(21, 100, 26, 116, 2, 505, 0.05,
4, 3, 29, 3, 14, 6.5, 407, 29, 10, 12, 99, 50, 68, 8, 121)), .Names = c("Crop",
"kg"), row.names = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
11L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 22L, 23L, 24L), class = "data.frame")
ag1<-structure(list(Crop = c("agouti", "beans", "chayote", "chives",
"chiwa squash", "cilantro", "corn", "epazote", "flower chiwa squash",
"jicama", "llame", "macal", "mustard", "onion", "paca", "papaya",
"pineapple", "plantain", "red onion", "scallions", "solanum americanum ",
"sugar cane", "sweet potato", "tomato", "watermelon", "yam",
"yuca"), kg = c(5, 25, 246.5, 50, 158, 303.83, 927, 0.35, 4,
3, 8, 49, 1, 3, 34, 155, 7.5, 717, 318, 14, 17, 237, 98, 111.5,
12, 25, 191)), .Names = c("Crop", "kg"), row.names = c(1L, 2L,
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 16L, 17L,
18L, 19L, 20L, 21L, 22L, 23L, 24L, 26L, 27L, 28L, 30L), class = "data.frame")
データフレームの両方または1つだけ。データフレームの1つにのみ表示される場合は、0またはNAをプレースホルダとして使用できます。
merge(ag,ag1,all="TRUE")
目的は、作物名、AGからkgの第二の列、およびAG1からkgの3列目の列を有するデータフレームを有することです。しかし、これを行うと、横方向ではなく縦方向にマージするように見えます。そしてその上に、すべての列が合併するように見えるわけではありません。
structure(list(Crop = c("agouti", "beans", "beans", "chayote",
"chayote", "chives", "chives", "chiwa squash", "chiwa squash",
"cilantro", "cilantro", "corn", "corn", "epazote", "epazote",
"flower chiwa squash", "jicama", "llame", "macal", "macal", "mustard",
"onion", "paca", "papaya", "papaya", "pineapple", "pineapple",
"plantain", "plantain", "red onion", "red onion", "scallions",
"scallions", "solanum americanum ", "solanum americanum ", "sugar cane",
"sugar cane", "sweet potato", "sweet potato", "tomato", "tomato",
"watermelon", "yam", "yam", "yuca", "yuca"), kg = c(5, 21, 25,
100, 246.5, 26, 50, 116, 158, 2, 303.83, 505, 927, 0.05, 0.35,
4, 3, 8, 29, 49, 1, 3, 34, 14, 155, 6.5, 7.5, 407, 717, 29, 318,
10, 14, 12, 17, 99, 237, 50, 98, 68, 111.5, 12, 8, 25, 121, 191
)), .Names = c("Crop", "kg"), row.names = c(NA, -46L), class = "data.frame")
私はその理由がわかりません。助言がありますか?ありがとう!
ルックhttp://stackoverflow.com/questions/1299871/how-to-join-merge-data-frames-inner-outer-left-right両方のデータセットは、2つの列を持っているので、何が起こっている – tatxif
同じ名前でしたがって、マージする列を指定しない限り、機能しない可能性があります。 –
ああ、ありがとうsaurav。それはそれを説明する! – elduderino260