【问题标题】:Data frame subsecting loop数据帧分段循环
【发布时间】:2020-06-12 20:16:36
【问题描述】:

我有一个由几对列组成的数据框。因此,例如,第一列是名称列表,第二列包含量化第一列变量的数值。在第三列中,我再次有一个名称列表,第四列是数字并量化第三列的变量,依此类推。

我现在想自动对前两列进行子集化以创建一个单独的数据框,并将第三到第四列自动设置为第二个数据框。最终目标是按名称对齐行。

例如,来自数据框 a

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))

有什么建议吗?

提前感谢您的帮助

【问题讨论】:

    标签: r function dataframe subset text-alignment


    【解决方案1】:

    我可以为您请求的第一部分提供帮助。请查看如何创建分离的数据框。

    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
    

    【讨论】:

      猜你喜欢
      • 2021-04-16
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 2022-12-20
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多