Как заменить весь столбец в одном кадре данных другим столбцом в другом кадре данных? - PullRequest
1 голос
/ 24 марта 2020

У меня есть два кадра данных. Я хочу заменить идентификаторы в dataframe1 на общие c идентификаторы. В dataframe2 я сопоставил идентификаторы из dataframe1 с обобщенными идентификаторами c.

Нужно ли объединять два фрейма данных, и после слияния я удаляю ненужный столбец?

Спасибо.

Ответы [ 3 ]

1 голос
/ 24 марта 2020

С dplyr

library(dplyr)
left_join(df1, df2, by = 'ids')
1 голос
/ 24 марта 2020

Подстановка фреймов данных не очень сложна в R: надеюсь, это поможет, вы не предоставили много кода, поэтому я надеюсь, что это поможет вам:

    #create 4 random columns (vectors) of data, and merge them into data frames:
a <- rnorm(n=100,mean = 0,sd=1)
b <- rnorm(n=100,mean = 0,sd=1)
c <- rnorm(n=100,mean = 0,sd=1)
d<- rnorm(n=100,mean = 0,sd=1)

df_ab <- as.data.frame(cbind(a,b))
df_cd <- as.data.frame(cbind(c,d))

#if you want column d in df_cd to equal column a in df_ab simply use the assignment operator
df_cd$d <- df_ab$a
#you can also use the subsetting with square brackets:
df_cd[,"d"] <- df_ab[,"a"]
1 голос
/ 24 марта 2020

Мы можем использовать merge, а затем удалить идентификаторы.

dataframe1 <- data.frame(ids = 1001:1010, variable = runif(min=100,max = 500,n=10))
dataframe2 <- data.frame(ids = 1001:1010, generics = 1:10)
result <- merge(dataframe1,dataframe2,by="ids")[,-1]

В качестве альтернативы мы можем использовать match и заменить присвоением.

dataframe1$ids <- dataframe2$generics[match(dataframe1$ids,dataframe2$ids)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...