一次计算R中所有变量的观察次数

一次计算R中所有变量的观察次数,r,R,但是我可以有100个变量,从mydat$x1到mydat$100。 我不想手动输入100次。 如何对所有变量进行所有计数 as.data.frame(table(numbers1)) as.data.frame(table(numbers2)) 不工作。我们可以列出环境中所有变量的列表,这些变量具有类似于数字的模式。然后我们可以循环浏览列表中的所有元素: as.data.frame(table(mydat$x1-mydat$x100)) number\u lst我们可以列出环境中所有变量的

但是我可以有100个变量,从mydat$x1到mydat$100。 我不想手动输入100次。 如何对所有变量进行所有计数

as.data.frame(table(numbers1))
as.data.frame(table(numbers2))

不工作。

我们可以列出环境中所有变量的列表,这些变量具有类似于
数字的模式。然后我们可以循环浏览列表中的所有元素:

 as.data.frame(table(mydat$x1-mydat$x100))

number\u lst我们可以列出环境中所有变量的列表,这些变量的模式类似于
number
。然后我们可以循环浏览列表中的所有元素:

 as.data.frame(table(mydat$x1-mydat$x100))

number_lst当我阅读您的问题时,您希望通过在多个集合上使用最小的重新键入来计算集合中每个唯一元素出现的次数

为此,首先需要将集合放入单个对象中,例如,放入列表中:

number_lst <- mget(ls(pattern = 'numbers\\d'), envir = .GlobalEnv) #thanks NelsonGon

lapply(number_lst, function(x) as.data.frame(table(x)))

$numbers1
     x Freq
1    4    2
2    5    1
3   23    2
4   34    2
5   43    1
6   54    1
7   56    2
8   65    1
9   67    2
10 324    1
11 435    3
12 453    1
13 456    1
14 567    1
15 657    1

$numbers2
     x Freq
1    4    2
2    5    1
3   23    2
4   34    2
5   44    1
6   54    1
7   56    2
8   65    1
9   67    2
10 324    1
11 435    3
12 453    1
13 456    1
14 567    1
15 657    1

当我阅读您的问题时,您希望通过在多个集合上使用最小的重新键入来计算集合中每个唯一元素出现的次数

为此,首先需要将集合放入单个对象中,例如,放入列表中:

number_lst <- mget(ls(pattern = 'numbers\\d'), envir = .GlobalEnv) #thanks NelsonGon

lapply(number_lst, function(x) as.data.frame(table(x)))

$numbers1
     x Freq
1    4    2
2    5    1
3   23    2
4   34    2
5   43    1
6   54    1
7   56    2
8   65    1
9   67    2
10 324    1
11 435    3
12 453    1
13 456    1
14 567    1
15 657    1

$numbers2
     x Freq
1    4    2
2    5    1
3   23    2
4   34    2
5   44    1
6   54    1
7   56    2
8   65    1
9   67    2
10 324    1
11 435    3
12 453    1
13 456    1
14 567    1
15 657    1

从两个向量中创建一个数据帧,并将其映射到
,或者仅映射一个长度不等的列表?尝试以下操作:
Map(table,data.frame(n1=numbers1,n2=numbers2))
可以使用任何
apply*
函数系列或
tidyverse
包?从两个向量创建一个数据帧,并将其映射到
table
或只是一个长度不等的列表?试试这个:
Map(table,data.frame(n1=numbers1,n2=numbers2))
可以使用任何
apply*
函数系列或
tidyverse
软件包吗?谢谢@NelsonGon。我知道有更好的办法。我们可以将您的
mget
与您对OP的评论结合起来:
Map(table,data.frame(mget(ls(pattern='numbers\\d')))
谢谢@NelsonGon。我知道有更好的办法。我们可以将您的
mget
与您对OP:
Map(table,data.frame(mget(ls(pattern='numbers\\d'))的评论结合起来。
list_of_sets <- list(numbers1 = c(4,23,4,23,5,43,54,56,657,67,67,435,
                                  453,435,324,34,456,56,567,65,34,435),
                     numbers2 = c(4,23,4,23,5,44,54,56,657,67,67,435,
                                  453,435,324,34,456,56,567,65,34,435))
list_of_counts <- list()
for(i in seq_along(list_of_sets)){
  list_of_counts[[i]] <- as.data.frame(table(list_of_sets[[i]]))
}
[[1]]
   Var1 Freq
1     4    2
2     5    1
3    23    2
4    34    2
5    43    1
6    54    1
7    56    2
8    65    1
9    67    2
10  324    1
11  435    3
12  453    1
13  456    1
14  567    1
15  657    1

[[2]]
   Var1 Freq
1     4    2
2     5    1
3    23    2
4    34    2
5    44    1
6    54    1
7    56    2
8    65    1
9    67    2
10  324    1
11  435    3
12  453    1
13  456    1
14  567    1
15  657    1