sample <-
structure(list(GB05 = structure(c(22L, 34L, 26L, 2L), .Dim = 4L, .Dimnames = structure(list(
c("98", "100", "102", "106")), .Names = ""), class = "table"),
GB18 = structure(c(8L, 14L, 70L), .Dim = 3L, .Dimnames = structure(list(
c("173", "175", "177")), .Names = ""), class = "table"),
GB06 = structure(c(2L, 16L, 48L, 10L, 10L, 6L), .Dim = 6L, .Dimnames = structure(list(
c("234", "238", "240", "242", "244", "246")), .Names = ""), class = "table"),
GB27 = structure(c(2L, 28L, 2L, 2L, 4L, 3L, 2L, 2L, …Run Code Online (Sandbox Code Playgroud) 如何通过元素名称组合这个向量列表?
L1 <- list(F01=c(1,2,3,4),F02=c(10,20,30),F01=c(5,6,7,8,9),F02=c(40,50))
Run Code Online (Sandbox Code Playgroud)
所以得到:
results <- list(F01=c(1,2,3,4,5,6,7,8),F02=c(10,20,30,40,50))
Run Code Online (Sandbox Code Playgroud)
我似乎找不到这个简单任务的awk解决方案.我可以根据一个匹配字段($ 1)轻松地将一列($ 3)与:
awk -F, '{array[$1]+=$3} END { for (i in array) {print i"," array[i]}}' datas.csv
Run Code Online (Sandbox Code Playgroud)
现在,我该如何基于两个字段来做到这一点?让我们说$ 1和$ 2?这是一个示例数据:
P1,gram,10
P1,tree,12
P1,gram,34
P2,gram,23
...
Run Code Online (Sandbox Code Playgroud)
如果第一个和第二个字段匹配,我只需要对第3列求和.
Thanx任何帮助!
我无法在上传递此rle功能data.frame。函数在另一组上效果很好:
fgroup <- aggregate(fevents2[,3:14], list(weeks = fevents2[, 1]), function(x) rle(x)$values)
Run Code Online (Sandbox Code Playgroud)
产生错误:
Error in rle(x) : 'x' must be an atomic vector
Run Code Online (Sandbox Code Playgroud)
样本数据:
> dput(fevents2[1:20,])
structure(list(weeks = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("1",
"2", "3", "4", "5", "6", "7"), class = "factor"), A1M.Date = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, …Run Code Online (Sandbox Code Playgroud) 我需要lapply连续传递(到函数)存储在向量中的值.
values <- c(10,11,13,10)
lapply(foo,function(x) peakabif(x,npeaks=values))
Run Code Online (Sandbox Code Playgroud)
所以得到:
peakabif(x1,npeaks=10)
peakabif(x2,npeaks=11)
peakabif(x3,npeaks=13)
peakabif(x4,npeaks=10)
Run Code Online (Sandbox Code Playgroud)
这是可能的还是我需要重新考虑使用lapply?函数内部的for循环是否有效?
我在= T旁边有一个条形图.我需要的是在每个条形的每个高度"标记"处分割(或绘制一条水平线).
样本矩阵图:
> head(top.fem)
FD1 FE2 FF1
J01 2 2 10
J02 4 0 0
J03 6 2 5
J04 1 6 3
J05 10 10 2
J06 9 6 5
Run Code Online (Sandbox Code Playgroud)
我只是:
barplot(top.fem,beside = T)
Run Code Online (Sandbox Code Playgroud)
因此,对于FD1,杆1的高度为2,杆2的高度为1,杆3的高度为6等...如何将杆1分成两个,两个四分之一和三个中的三个?结果将"看起来像"一个堆积条形图,但事实并非如此.我清楚了吗?
Thanx任何帮助!
我正在用ggplot2整理我的第一个情节.我需要为值设置一个形状== 0.这是我的数据集和到目前为止我得到的:
structure(list(Var1 = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L,
8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 1L, 2L, 3L, 4L, 5L,
6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 1L, 2L, 3L,
4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 1L,
2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L,
16L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, …Run Code Online (Sandbox Code Playgroud) foo <- c("a","a",NA,"b","a","a","b","b")
Run Code Online (Sandbox Code Playgroud)
如果以前的元素是NA,如何用"b"代替?
foo[foo=="b" & "previous-element"==NA] <- "whatever"
Run Code Online (Sandbox Code Playgroud)
所以预期产量将是:
result <- c("a","a",NA,"whatever","a","a","b","b")
Run Code Online (Sandbox Code Playgroud)
因此,只有NA之前的"b"(实际数据中很多)才会改变.
谢谢你的帮助!
我正在努力完成这个简单的任务
我有一个向量列表,我想提取一个范围内的值,比如介于1700和6200之间.
sample <- list(c(1062, 1084, 1104, 1130, 1143, 1178, 1193, 1209, 1233,
1276, 1315, 1458, 1752, 2027, 2483, 2598, 2713, 3196, 3780, 4448,
4937, 5070, 5734, 6347, 6859, 6963), c(1101, 1125, 1153, 1166,
1201, 1214, 1257, 1281, 1315, 1351, 1493, 1786, 2061, 2514, 2559,
2583, 2628, 2742, 3185, 3223, 3801, 4469, 4954, 5090, 5753, 6364,
6874, 6978))
sapply(sample, function(x) x[x > 1700])
sapply(sample, function(x) x[x < 6200])
Run Code Online (Sandbox Code Playgroud)
如何将这两个功能合二为一?
sapply(sample, function(x) x[x > 1700] & x[x<6200])
Run Code Online (Sandbox Code Playgroud)
不起作用,为什么?我错过了什么?
如何在这样的df中唯一(rle unique)元组
structure(c("M01", "M01", "M01", "M01", "M01", "M02", "M02",
"M02", "M02", "M03", "M03", "F04", "F04", "F02", "F02", "F04",
"F10", "F10", NA, "F10", "F01", "F01"), .Dim = c(11L, 2L), .Dimnames = list(
NULL, c("a", "b")))
> sample
a b
[1,] "M01" "F04"
[2,] "M01" "F04"
[3,] "M01" "F02"
[4,] "M01" "F02"
[5,] "M01" "F04"
[6,] "M02" "F10"
[7,] "M02" "F10"
[8,] "M02" NA
[9,] "M02" "F10"
[10,] "M03" "F01"
[11,] "M03" "F01"
Run Code Online (Sandbox Code Playgroud)
得到这个:
structure(c("M01", "M01", "M01", "M02", "M02", "M03", "F04",
"F02", …Run Code Online (Sandbox Code Playgroud) 这是我的数据框的示例列,RR是标题:
RR
Cvv
Cvv
Caa
Run Code Online (Sandbox Code Playgroud)
我需要的是"反转"数据,以便在数据帧中获得子串vv和aa作为标题和RR.得到的矩阵将是:
vv | aa
CRR |
CRR |
| CRR
Run Code Online (Sandbox Code Playgroud)
所以我们在两个矩阵中都得到了相同的关系.在第一行和第二行,vv与RR耦合.在第三行,aa与RR耦合.
这可以通过R实现吗?有任何想法吗 ?
谢谢你的期待!
我在上面的例子中过度简化了我的数据.所以这是我的实际数据集的示例:
> dput(head(A1F[4:15],n=20))
structure(list(RR = structure(c(15L, 15L, 15L, 27L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("",
" ", "Caa", "Caj", "Cbb", "Cbb ", "Cbv", "Cja", "Cjr", "Crj",
"Crr", "Crv", "Cvb", "Cvr", "Cvv", "Gaa", "Gaj", "Gbb", "Gbv",
"Gja", "Gjr", "Grj", "Grr", "Grv", "Gvb", "Gvr", "Gvv"), class = "factor"),
AA = …Run Code Online (Sandbox Code Playgroud)