Цикл подсекции фрейма данных - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть датафрейм, состоящий из нескольких парных столбцов. Так, например, первый столбец представляет собой список имен, а второй столбец содержит числовые значения c, количественно определяющие переменные первого столбца. В третьем столбце у меня снова есть список имен, а четвертый столбец - цифра c, и он количественно определяет переменные третьего столбца и т.

Теперь я хочу автоматически установить первые два столбца для создания отдельного кадра данных, а третий-четвертый столбцы - для второго кадра данных. Конечной целью является выравнивание строк по имени.

Например, из фрейма данных

names_a<-c("a","b","c","d")
values_a<-c(1,2,3,4)
names_b<-c("a","b","e","f")
values_b<-c(5,6,7,8)
a<-as.data.frame(cbind(names_a,values_a,names_b,values_b))

я бы получил фрейм данных, содержащий names_a и values_a, и другой фрейм данных, содержащий names_b и values_b, затем выравнивая их, чтобы иметь фрейм данных a1:

names_a1<-c("a","b","c","d","e","f")
values_a1<-c(1,2,3,4,0,0)
values_b1<-c(5,6,0,0,7,8)
a1<-as.data.frame(cbind(names_a1,values_a1,values_b1))

Есть предложения?

Заранее благодарим за любую помощь

1 Ответ

0 голосов
/ 13 марта 2020

Я могу помочь по первой части вашего запроса. Пожалуйста, посмотрите, как создать разделенные фреймы данных.

names_a<-c("a","b","c","d")
values_a<-c(1,2,3,4)
names_b<-c("a","b","e","f")
values_b<-c(5,6,7,8)
a<-as.data.frame(cbind(names_a,values_a,names_b,values_b))

#When you subset a data frame you focus on observations (rows), not on the variables (columns). You can create 2 new data frames out of the existing one.


#df contain 3+4 Variable
a34 <- data.frame(cbind(as.vector(a$names_b),as.vector(a$values_b)))
colnames(a34) <-c("names_b","values_b")

#then "subset" a (in fact you create a new one and replace it)
a <- data.frame(cbind(as.vector(a$names_a),as.vector(a$values_a)))
colnames(a) <-c("names_a","values_a")

Результат:

> a
  names_a values_a
1       a        1
2       b        2
3       c        3
4       d        4
> a34
  names_b values_b
1       a        5
2       b        6
3       e        7
4       f        8
...