пытается добавить столбец в фрейм данных из существующего фрейма данных в r - PullRequest
0 голосов
/ 13 июля 2020

Я создал новый фрейм данных (названный "средними") в r на основе уже существующего фрейма данных (названного "старым"). "Средние значения" имеют столбец со всеми уникальными значениями из столбца в "старом". Теперь я хотел бы добавить еще один столбец из «старого» в «средние» со значениями из «старого», которые соответствуют значениям, связанным с уникальными значениями из другого столбца в «старом».

То, что я делал новый фрейм данных:

> averages <- data.frame(unique(old$Tree), avg) ## creating new dataframe

Это был код, который я пытался добавить в новый столбец:

> averages <- data.frame(unique(old$Tree), avg, old$Site) ## creating new dataframe

И я получаю эту ошибку:

    Error in data.frame(unique(old$Tree), avg, old$Site) : arguments imply differing number of rows: 50, 1110

I попытался решить проблему с этим, но подумал, что это не сработает (это не сработало):

> averages <- data.frame(unique(old$Tree), avg, unique(old$Site)) ## creating new dataframe

    Error in data.frame(unique(old$Tree), avg, unique(old$Site)) : arguments imply differing number of rows: 50, 3 

Любая помощь о том, как добавить этот новый столбец, была бы очень признательна!

1 Ответ

0 голосов
/ 13 июля 2020

Похоже, вы могли бы сделать это с помощью dplyr

install.packages("tidyverse")
library(tidyverse)

df <- left_join(averages, old, by = c("ID_col_in_averages" = "ID_col_in_old"))

, где, если я правильно понимаю, оба столбца идентификаторов для использования в объединении - это Tree

...