小编lig*_*ail的帖子

计算R中的频率

这是我的数据

> a
 [1] Male   Male   Female Male   Male   Male   Female Female Male   Male   Female Male   Male   Male  
[15] Female Female Female Male   Female Male   Female Male   Male   Female Male   Male   Female Male  
[29] Male   Male   Female Male   Male   Male   Female Female Male   Male   Male   Male   Male  
Levels:  Female Male

> b
[1] 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 …
Run Code Online (Sandbox Code Playgroud)

r frequency r-factor

7
推荐指数
1
解决办法
1090
查看次数

计算R中所有组合的乘积

清单a如下:

a<-list(3:6,6:8,3:4,8)

> a
[[1]]
[1] 3 4 5 6

[[2]]
[1] 6 7 8

[[3]]
[1] 3 4

[[4]]
[1] 8
Run Code Online (Sandbox Code Playgroud)

我的目标是计算每个对象中所有2元素组合的所有产品.例如,第一个对象a3 4 5 6,所以第一个对象的12 15 18 20 24 30所有产品都是,第二个对象的所有产品都是42 48 56.但是当对象中只有一个元素时,输出应该是0.我计划通过使用来解决问题Map(function(x) combn(x,2,prod),a),但是当对象中只有一个元素(例如第4个对象a)时它不适合.

> Map(function(x) combn(x,2,prod),a)
[[1]]
[1] 12 15 18 20 24 30

[[2]]
[1] 42 48 56

[[3]]
[1] 12

[[4]]
 [1]  2  3  4  5  6  7  8  6  8 …
Run Code Online (Sandbox Code Playgroud)

combinations r list

6
推荐指数
1
解决办法
135
查看次数

在R中用另一个替换列表的值

a,b和c是列表.

a<-list(c(6,5,7),c(1,2),c(1,3,4))
b<-list(c(1,2,3),c(4,5),c(6,7,8))
c<-list(1,2,2)
Run Code Online (Sandbox Code Playgroud)

我想在"c"处将"a"替换为"b"以生成新列表.

预期结果如下:

[[1]]
[1] 1 5 7

[[2]]
[1] 1 5

[[3]]
[1] 1 7 4
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

r list

4
推荐指数
1
解决办法
1736
查看次数

总结列表的特定元素

a<-list(5,6,8,4,5,2)
b<-c(3,2,1)
Run Code Online (Sandbox Code Playgroud)

我想根据"b"将"a"加起来形成一个新列表.

即(5 + 6 + 8),(4 + 5),2

预期的结果是:

[[1]]
[1] 19

[[2]]
[1] 9

[[3]]
[1] 2
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码来解决这个问题,但我想知道是否有更方便的方法来解决这个问题.谢谢!

p<-rep(1:length(b),b)
as.list(sapply(1:length(b), function(x) {sum(as.numeric(a)[which(p==x)])}))
Run Code Online (Sandbox Code Playgroud)

r list

4
推荐指数
1
解决办法
141
查看次数

将列表匹配到R中的矩阵行

"a"是列表,"b"是矩阵.

a<-list(matrix(c(0,2,0,1,0,2,0,0,1,0,0,0,0,0,2,2),4), 
        matrix(c(0,1,0,0,0,1,1,0,0,0,0,0),3),
        matrix(c(0,0,0,0,2,0,1,0,0,0,0,0,2,0,2,1,0,1,1,0),5))
b<-matrix(c(2,2,1,1,1,2,1,2,1,1,2,1,1,1,1,1,1,2,2,2,1,2,1,1),6) 

> a
[[1]]
     [,1] [,2] [,3] [,4]
[1,]    0    0    1    0
[2,]    2    2    0    0
[3,]    0    0    0    2
[4,]    1    0    0    2

[[2]]
     [,1] [,2] [,3] [,4]
[1,]    0    0    1    0
[2,]    1    0    0    0
[3,]    0    1    0    0

[[3]]
     [,1] [,2] [,3] [,4]
[1,]    0    0    0    1
[2,]    0    1    0    0
[3,]    0    0    2    1
[4,]    0    0    0    1
[5,]    2    0 …
Run Code Online (Sandbox Code Playgroud)

r list matrix

3
推荐指数
1
解决办法
532
查看次数

从列表中提取由列表组成的列

a是包含列表的列表:

a<-list(list(matrix(c(0,0,0,1,2,1,2,2,2,1,1,1),3),
             matrix(c(0,0,1,2,2,2,2,1),2)),
        list(matrix(c(0,0,1,2,2,1,1,1,2,2,2,2),3)))

> a
[[1]]
[[1]][[1]]
     [,1] [,2] [,3] [,4]
[1,]    0    1    2    1
[2,]    0    2    2    1
[3,]    0    1    2    1

[[1]][[2]]
     [,1] [,2] [,3] [,4]
[1,]    0    1    2    2
[2,]    0    2    2    1


[[2]]
[[2]][[1]]
     [,1] [,2] [,3] [,4]
[1,]    0    2    1    2
[2,]    0    2    1    2
[3,]    1    1    2    2
Run Code Online (Sandbox Code Playgroud)

我想提取所有对象的第一列.我们知道如果列表是由矩阵组成的,我们可以用"Map"函数来解决这个问题,但是现在列表是由列表组成的,我们不能用"Map"来解决这个问题,我怎么办呢这容易吗?

我使用以下代码来解决这个问题:

sapply(1:length(a), function(x) {Map(function(y) y[,1],a[[x]])})
Run Code Online (Sandbox Code Playgroud)

它可以解决,但我想知道是否有更方便的方法来解决这个问题,因为我需要在以后基于这个问题做更多的工作.谢谢!

r list matrix

2
推荐指数
1
解决办法
71
查看次数

将矩阵转换为R中的特定列表

"a"是矩阵,"b"是数字.行号"a"与"b"的长度相同.

a<-matrix(1:24,6,4,byrow = T)
b<-c(3,1,2)
Run Code Online (Sandbox Code Playgroud)

我想将"a"转换为列表,其中每个对象中的元素数量与"b"相同.预期结果如下:

[[1]]
     [,1] [,2] [,3] [,4] 
[1,]    1    2    3    4 
[2,]    5    6    7    8  
[3,]    9   10   11   12 

[[2]]
     [,1] [,2] [,3] [,4] 
[1,]   13   14   15   16 

[[3]]
     [,1] [,2] [,3] [,4] 
[1,]   17   18   19   20  
[2,]   21   22   23   24 
Run Code Online (Sandbox Code Playgroud)

非常感谢你的帮助!

r list matrix

1
推荐指数
1
解决办法
58
查看次数

标签 统计

r ×7

list ×6

matrix ×3

combinations ×1

frequency ×1

r-factor ×1