Собираем несколько столов вместе - PullRequest
0 голосов
/ 07 июня 2019

У меня есть три таблицы, считанные в R как кадры данных.

Table1:

Student ID   School_Name             Campus Area
   4356791          BCCS    Northwest Springdale
    03127.           BZS            South Vernon
    12437.          BCCS.           South Vernon

Таблица 2:

ProctorID.           Date.    Score.   Student ID      Form#
      0211        10/05/16     75.57        55612   25432178
      0211        10/17/16     83.04        55612   47135671
      5134        10/17/16     63.28        02613    2371245

Таблица 3:

ProctorID         First.       Last.              Campus Area
    O211.         Simone      Lewis.     Northwest Springdale 
    5134.          Mona.   Yashamito     Northwest Springdale 
    0712.        Steven.      Lewis.             South Vernon

Я хочу объединить фреймы данных и создать таблицу с оценками рядом друг с другом для каждой области по названию школы. Я хочу вывод, подобный следующему:

School_Name      Form#   Northwest Springdale    Southvernon   
      BCCS.   2543127.                 83.04.          63.25       
      BCCS.     35674.                 75.14.              *
       BZS.   5321567.                  65.2.           62.3

Конкретная форма для конкретной школы может не иметь баллов для определенной области. Есть идеи? Я играл с пакетом sqldf. Также возможно ли манипулировать этим в R без использования каких-либо SQL?

1 Ответ

0 голосов
/ 07 июня 2019

Чтобы разыграть, что-то вроде этого:

library(reshape2)
casted_df <- dcast(df, ... ~ "Campus Area", value.var="Score.")

Пример, который мне подходит:

df1 <- data.frame("StudentID" = 1:3, "SchoolName" = c("School1", "School2", "School3"), "Area" = c("Area1", "Area2", "Area3"))
df2 <- data.frame("StudentID" = 1:3, "Score" = 100:102, "Proctor" = 4:6)
df3 <- data.frame("Proctor" = 4:6, "Area" = c("Area1", "Area2", "Area3"), "Name" = c("John", "Jane", "Jim"))

combined <- merge(df1, df2, by.x = "StudentID")
combined2 <- merge(combined, df3, by.x = "Proctor", by.y="Proctor")

library(reshape2)
final <- dcast(combined2, ... ~ Area.x, value.var="Score")

df image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...