equal.count()当显然可以创建没有重叠的分组时,为什么函数会创建重叠的带状疱疹.此外,重叠的基础是什么?
例如:
equal.count(1:100,4)
Data:
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
[23] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
[45] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
[67] 67 68 69 70 71 …Run Code Online (Sandbox Code Playgroud) 我有一个R数据框,有两个字段:
ID WORD
1 AAAAABBBBB
2 ABCAAABBBDDD
3 ...
Run Code Online (Sandbox Code Playgroud)
我想通过重复字母简化字母,而不是重复字母而不是重复字母:
例如:AAAAABBBBB应该给我AB
并且 ABCAAABBBDDD应该给我ABCABD
任何人都知道如何做到这一点?
我有一个编码组 ID 的变量:
d <- data.frame(group = c(0,1,0,2,1,3,2,0,1,2), x=c(1.2,2.3,3.2,2.1,1.3,1.5,2.3,0.4,1.3,1.7))
Run Code Online (Sandbox Code Playgroud)
当我尝试在 ggplot2 中使用它制作箱线图时出现错误
提供给离散尺度的连续值
尝试呈现数据。然后我手动将数据中的至少一个组 ID 更改为文本,一切正常。
所以,我的问题是:是否有一些简单的方法可以将包含有限数量的变量的连续变量更改为离散变量?
在给定具有多列的数据框的情况下,如何在R中以优雅的方式生成秩相关矩阵?我找不到内置函数,所以我尝试了
> test=data.frame(x=c(1,2,3,4,5), y=c(5,4,3,2,1))
> cor(rank(test))
Run Code Online (Sandbox Code Playgroud)
(为简单起见,只有2列,实际数据有5列)
> Error in cor(rank(test)) : supply both 'x' and 'y' or a matrix-like 'x'
Run Code Online (Sandbox Code Playgroud)
我认为这是因为rank需要一个向量.所以我试过了
> cor(lapply(test,rank))
Run Code Online (Sandbox Code Playgroud)
获取应用于数据框中每列的等级,将数据框视为列表,从而产生错误
> supply both 'x' and 'y' or a matrix-like 'x'
Run Code Online (Sandbox Code Playgroud)
我终于得到了一些合作的东西
> cor(data.frame(lapply(test,rank)))
x y
x 1 -1
y -1 1
Run Code Online (Sandbox Code Playgroud)
然而,这似乎相当冗长和丑陋.我认为必须有更好的方法 - 如果是这样的话?
我想对一堆变量应用t检验.下面是一些模拟数据
d <- data.frame(var1=rnorm(10),
var2=rnorm(10),
group=sample(c(0,1), 10, replace=TRUE))
# Is there a way to do this in some sort of loop?
with(d, t.test(var1~group))
with(d, t.test(var2~group))
# I tried this but the loop did not give a result!?
varnames <- c('var1', 'var2')
for (i in 1:2) {
eval(substitute(with(d, t.test(variable~group)),
list(variable=as.name(varnames[i]))))
}
Run Code Online (Sandbox Code Playgroud)
此外,是否可以从t检验的结果中提取值(例如,两个组均值,p值),以便循环将在变量之间产生一个整齐的平衡表?换句话说,我想要的最终结果不是一堆t测试,而是一个像这样的表:
Varname mean1 mean2 p-value
Var1 1.1 1.2 0.989
Var2 1.2 1.3 0.912
Run Code Online (Sandbox Code Playgroud) 我有一个数据库,其中包括1985 - 2012年间不同年份的法律.我想为每年制作不同的17个图(因此,制作一个函数),包括它的'值和前几年,并为每个图保持相同的x和y轴设计,如你所见在如下图所示:

这就是我在1985年至2012年间制作上图的方式:
> v <- ddply(leg.by.melt, .(year), summarise, count = sum(value))
> v
year count
1 1985 2
2 1987 5
3 1988 9
4 1989 12
5 1990 14
6 1991 11
7 1992 16
8 1993 23
9 1994 25
10 1995 10
11 1996 11
12 1997 24
13 1998 35
14 1999 32
15 2000 24
16 2001 22
17 2002 65
18 2003 42
19 2004 56
20 2005 42
21 2006 …Run Code Online (Sandbox Code Playgroud) 正如标题所述,我需要根据另一个矩阵 (B) 中给出的列和行名称,将对称矩阵 (A) 中的值替换为 0。例如,
A <-matrix(c(0,1,2,3,4,1,0,1,2,3,2,1,0,1,2,3,2,1,0,3,4,3,2,3,0), 5)
colnames(A) <- rownames(A) <-c(LETTERS[1:5])
A
A B C D E
A 0 1 2 3 4
B 1 0 1 2 3
C 2 1 0 1 2
D 3 2 1 0 3
E 4 3 2 3 0
B <- matrix(c("A","B","C","B","D","E","E","C"),4)
B #reference matrix
[,1] [,2]
[1,] "A" "D"
[2,] "B" "E"
[3,] "C" "E"
[4,] "B" "C"
Run Code Online (Sandbox Code Playgroud)
我试过
A[B[,1],B[,2]]<-0 #for the above-diagonal half but it didn't work as …Run Code Online (Sandbox Code Playgroud) 我有许多通常采用格式的file.[i]数据帧,但偶尔会丢失数据帧:
file.1 file.2 file.3 file.4 file.5 file.6 file.7 file.9 file.11 file.13
Run Code Online (Sandbox Code Playgroud)
我试图做的是这样的:
dt <- do.call(rbind.fill,
lapply(paste("file.", 1:length(filenames), sep=""), get))
Run Code Online (Sandbox Code Playgroud)
我得到:
Error in FUN(c("file.1", "file.2", "file.3", "file.4", "file.5", "file.6", :
object 'file.8' not found
Run Code Online (Sandbox Code Playgroud)
有没有办法rbind.fill忽略丢失的数据帧?
print(elasticband)
strech distance tension
1 67 148 5
2 98 120 10
3 34 173 15
4 50 60 20
5 45 263 25
6 42 141 30
7 89 166 35
Run Code Online (Sandbox Code Playgroud)
所以我有这个数据框,我希望能够改变单个列(例如,在张力列中对所有内容进行平方)而不影响其他像弹性带**2
有小费吗?
PS我对此并不太擅长,所以修复越简单越好
我有一个像这样的对象:
d1 <- data.frame(y1=c(1,2,3),y2=c(4,5,6))
d2 <- data.frame(y1=c(3,2,1),y2=c(6,5,4))
d3 <- data.frame(y1=c(7,8,9),y2=c(5,2,6))
my.list <- list(d1, d2, d3)
names(my.list) <- c("d1","d2","d3")
Run Code Online (Sandbox Code Playgroud)
有没有办法一次访问列表y2中所有数据框的列?
像这样的东西:
my.list[["d1"]]$y2
Run Code Online (Sandbox Code Playgroud)
但这仅适用于一次一个数据帧