Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 合并两个列表组件_List_R_Merge - Fatal编程技术网

List 合并两个列表组件

List 合并两个列表组件,list,r,merge,List,R,Merge,我有一个很大的列表,但微观示例如下: A <- c("A", "a", "A", "a", "A") B <- c("A", "A", "a", "a", "a") C <- c(1, 2, 3, 1, 4) mylist <- list(A=A, B=B, C= C) 最好是排序,大写字母总是第一位 AA, Aa, Aa, aa, Aa 因此,新列表或矩阵应具有两列或两行: AA, Aa, Aa, aa, Aa 1, 2, 3, 1, 4 现在我想根据“

我有一个很大的列表,但微观示例如下:

A <- c("A", "a", "A", "a", "A")
B <- c("A", "A", "a", "a", "a")
C <- c(1, 2, 3, 1, 4) 
mylist <- list(A=A, B=B, C= C)
最好是排序,大写字母总是第一位

AA, Aa, Aa, aa, Aa
因此,新列表或矩阵应具有两列或两行:

AA, Aa, Aa, aa, Aa
1,   2, 3,   1, 4
现在我想根据“AA”、“AA”和“AA”类计算C的平均值

看起来很简单,但我不容易理解。

>(ab(ab(ab rbind(ab,C)#矩阵
> (ab <- paste(A, B, sep="") )
[1] "AA" "aA" "Aa" "aa" "Aa"
> (ab <- paste(A, B, sep="") )  # the joining step
[1] "AA" "aA" "Aa" "aa" "Aa"
> (ab <- sub("([a-z])([A-Z])", "\\2\\1", ab) ) # swap lowercase uppercase
[1] "AA" "Aa" "Aa" "aa" "Aa"

> rbind(ab, C)                  # matrix
   [,1] [,2] [,3] [,4] [,5]
ab "AA" "Aa" "Aa" "aa" "Aa"
C  "1"  "2"  "3"  "1"  "4" 
> data.frame(alleles=ab, count=C)  # dataframes are lists
  alleles count
1      AA     1
2      Aa     2
3      Aa     3
4      aa     1
5      Aa     4
[,1] [,2] [,3] [,4] [,5] ab“AA”“AA”“AA”“AA”“AA” C“1”“2”“3”“1”“4” >数据帧(等位基因=ab,计数=C)#数据帧是列表 等位基因计数 1机管局1 2 Aa 2 3 Aa 3 4 aa 1 5 Aa 4
如果您的数据被安排在
数据框中,我可以使用软件包
plyr

> A <- c("A", "a", "A", "a", "A")
> B <- c("A", "A", "a", "a", "a")
> C <- c(1, 2, 3, 1, 4) 
> groups <- sort(paste(A, B, sep=""))
[1] "AA" "aA" "Aa" "aa" "Aa"
> my.df <- data.frame(A=A, B=B, C=C, group=groups)

> require(plyr)
> result <- ddply(my.df, "group", transform, group.means=mean(C))
> result[order(result$group, decreasing=TRUE),]
  A B C group group.means
5 A A 1    AA         1.0
3 A a 3    Aa         3.5
4 A a 4    Aa         3.5
2 a A 2    aA         2.0
1 a a 1    aa         1.0
>A B C组my.df要求(plyr)
>结果结果[顺序(结果$group,递减=真),]
A B C组表示
5 A 1 AA 1.0
3 A 3 Aa 3.5
4 A 4 Aa 3.5
2 a 2 aA 2.0
1A aa 1.0
使用您的数据:

A <- c("A", "a", "A", "a", "A")
B <- c("A", "A", "a", "a", "a")
C <- c(1, 2, 3, 1, 4) 
如果您需要在聚合之前订购此
data.frame
,则:

df <- df[order(AB, decreasing=TRUE),]

> df
  id C
 1 AA 1
 3 Aa 3
 5 Aa 4
 2 aA 2
 4 aa 1
但如果您想在聚合后订购,则:

df <- data.frame(id=AB, C=C)
meanDF <- aggregate(C~id, data=df, mean)
meanDF <- meanDF[order(meanDF$id, decreasing=TRUE),]
df
df <- df[order(AB, decreasing=TRUE),]

> df
  id C
 1 AA 1
 3 Aa 3
 5 Aa 4
 2 aA 2
 4 aa 1
meanDF <- aggregate(C~id, data=df, mean)

> meanDF

  id   C
1 aa 1.0
2 aA 2.0
3 Aa 3.5
4 AA 1.0
df <- data.frame(id=AB, C=C)
meanDF <- aggregate(C~id, data=df, mean)
meanDF <- meanDF[order(meanDF$id, decreasing=TRUE),]