【问题标题】:Count the number of row in each data.frame in a list [duplicate]计算列表中每个data.frame中的行数[重复]
【发布时间】:2020-12-16 11:27:03
【问题描述】:
df=data.frame(Name=c("leonard","andrey","richard","john"), #initial data
           Func=c("FUNC1","FUNC2","FUNC3","FUNC1"))
df=split(df,df$Func) # split by Func column
sapply(df,function(x){length(df$x)}) # error here attempt 1
sapply(df,function(x){nrow(df$x)}) # error attempt 2 give NULL result

我想知道此列表中每个 data.frame 中存在的观察数

预期输出:


> data.frame(FUNC1=2,FUNC2=1,FUNC3=1)
  func1 func2 func3
      2     1     1

【问题讨论】:

  • 你可以使用table()的输出

标签: r


【解决方案1】:

像这样?

> table(df$Func)

FUNC1 FUNC2 FUNC3 
    2     1     1 

【讨论】:

    【解决方案2】:

    您可以在sapply 中使用nrow

    sapply(df, nrow)
    #sapply(df,function(x){length(x$Name)}) #Alternative using your 1sd try
    #sapply(df,function(x){nrow(x)}) #Alternative using your 2nd try
    #FUNC1 FUNC2 FUNC3 
    #    2     1     1 
    

    【讨论】:

      【解决方案3】:

      lapply() 方法是:

      #Data
      df=data.frame(Name=c("leonard","andrey","richard","john"), #initial data
                    Func=c("FUNC1","FUNC2","FUNC3","FUNC1"))
      df=split(df,df$Func) # split by Func column
      #Lapply approach
      lapply(df,function(x) dim(x)[1])
      

      输出:

      $FUNC1
      [1] 2
      
      $FUNC2
      [1] 1
      
      $FUNC3
      [1] 1
      

      【讨论】:

        猜你喜欢
        • 2011-02-23
        • 1970-01-01
        • 2021-03-07
        • 1970-01-01
        • 2013-10-18
        • 1970-01-01
        • 1970-01-01
        • 2020-08-12
        • 2013-07-13
        相关资源
        最近更新 更多