我很困惑为什么输出不是我期望它在以下嵌套while循环中:
i = 1
j = 1
while(i<5){
print("i")
print(i)
i = i + 1
while(j<5){
print("j")
print(j)
j = j + 1
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
[1] "i"
[1] 1
[1] "j"
[1] 1
[1] "j"
[1] 2
[1] "j"
[1] 3
[1] "j"
[1] 4
[1] "i"
[1] 2
[1] "i"
[1] 3
[1] "i"
[1] 4
Run Code Online (Sandbox Code Playgroud)
但我期待的是一些东西
[1] "i"
[1] 1
[1] "j"
[1] 1
[1] "j"
[1] 2
[1] "j"
[1] 3
[1] "j"
[1] 4
[1] …Run Code Online (Sandbox Code Playgroud) 因此,此代码Bone根据因子的值填充向量的值bonegrp.我想以更简洁的方式实现这一目标.
谢谢!
v <- dat$bonegrp=="Bone2"
Bone[v] <- "Gast 1"
v <- dat$Bonegrp=="Bone3"
Bone[v] <- "Gast 2"
v <- dat$Bonegrp=="Bone4"
Bone[v] <- "Vert1"
v <- dat$Bonegrp=="Bone5"
Bone[v] <- "Vert2"
v <- dat$Bonegrp=="Bone6"
Bone[v] <- "Femur"
v <- dat$Bonegrp=="Bone7"
Bone[v] <- "Tibia"
v <- dat$Bonegrp=="Bone8"
Bone[v] <- "Meta."
v <- dat$Bonegrp=="Bone9"
Bone[v] <- "Phal."
v <- dat$Bonegrp=="Bone10"
Bone[v] <- "PCau."
v <- dat$Bonegrp=="Bone11"
Bone[v] <- "MCau."
v <- dat$Bonegrp=="Bone12"
Bone[v] <- "DCau.
Run Code Online (Sandbox Code Playgroud) 我无法在我的Windows 7上使用最新的R(2.13.0)从https://r-forge.r-project.org/projects/vennerable/安装Vennerable R软件包.
我试过以下:
从RGui安装并选择R-Forge repos:
列表中没有Vennerable包
使用"从本地zip文件安装包"从RGui安装:
can not open compressed file 'Vennerable.tar.gz/DESCRIPTION'
Run Code Online (Sandbox Code Playgroud)将tar.gz转换为zip并使用"从本地zip文件安装包"从RGui安装:
can not open compressed file 'Vennerable.tar.gz/DESCRIPTION'
Run Code Online (Sandbox Code Playgroud)尝试手动安装: install.packages("D:/Downloads/Vennerable.tar.gz", repos = NULL)
can not open compressed file 'Vennerable.tar.gz/DESCRIPTION'
Error in install.packages : cannot open the connection
Run Code Online (Sandbox Code Playgroud)注意:有一个文件说明.
我该怎么做才能安装这个软件包?
我正在尝试编写一个循环来搜索data.frame B(date_B[j])中的正确日期,并将相关值复制到与同一日期相关X_B[j]的X_A[i]变量中date_A[i].
挑战在于:a)目标data.frame A具有几个相同的日期,但b)不系统地具有data.frame(B)具有的所有日期.(B)包括所有需要的日期.因此,数据帧具有不同的长度.
问题:
数据框是:
A =
date_A X_A
1 2010-01-01
2 2010-01-02
3 2010-01-03
4 2010-01-02
5 2010-02-03
6 2010-01-01
7 2010-01-02
.
.
.
20000
B=
date_B X_B
1 2010-01-01 7.9
2 2010-01-02 8.5
3 2010-01-03 2.1
.
.
400
Run Code Online (Sandbox Code Playgroud)
我的目标是:
A=
date_A X_A
1 2010-01-01 7.9
2 2010-01-02 8.5
3 2010-01-03 2.1
4 2010-01-02 8.5
5 2010-02-03 2.1
6 2010-01-01 7.9
7 2010-01-02 …Run Code Online (Sandbox Code Playgroud) 非常感谢你的帮助.
是.我应该提供一个更好的例子.
这是我的输入文件(3columns.csv)
Patients Markers Studies
1 AA EXX 1111
2 BB ABCB1 2222|3333|5555|6666
3 CC CCAN 4444|5555
4 DD ABCB1 6666
Run Code Online (Sandbox Code Playgroud)
这是我的输出文件
Patients Markers Studies
1 AA EXX 1111
2 BB ABCB1 2222
2 BB ABCB1 3333
2 BB ABCB1 5555
2 BB ABCB1 6666
3 CC CCAN 4444
3 CC CCAN 5555
4 DD ABCB1 6666
Run Code Online (Sandbox Code Playgroud)
(1)根据以下命令,我对第6行进行了如下更改
sapply(unlist(strsplit(as.character(df[x,3]),"\\|")),c,df[x,1:2],USE.NAMES=FALSE)
Run Code Online (Sandbox Code Playgroud)
(2)我试着将df文件调用为
df <- read.csv(file="3columns.csv",header=TRUE,stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)
(3)我\\之前也尝试过添加|
所有这些方法都不起作用,所以我怀疑我可能误解了下面的答复.你介意给我一些指导吗?
最诚挚的问候,凯瑟琳
------原始问题--------------------------
我想使用R的strsplit命令根据符号分隔单元格"|".
但是,会显示一条错误消息:
Error in strsplit(df[x, …Run Code Online (Sandbox Code Playgroud)