小编Mar*_*rek的帖子

在R中嵌套while循环行为

我很困惑为什么输出不是我期望它在以下嵌套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)

r while-loop

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

用R中的因子循环

因此,此代码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)

loops r

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

R在窗户上安装Vennerable包

我无法在我的Windows 7上使用最新的R(2.13.0)从https://r-forge.r-project.org/projects/vennerable/安装Vennerable R软件包.

我试过以下:

  1. 从RGui安装并选择R-Forge repos:
    列表中没有Vennerable包

  2. 使用"从本地zip文件安装包"从RGui安装:

    can not open compressed file 'Vennerable.tar.gz/DESCRIPTION'
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将tar.gz转换为zip并使用"从本地zip文件安装包"从RGui安装:

    can not open compressed file 'Vennerable.tar.gz/DESCRIPTION'
    
    Run Code Online (Sandbox Code Playgroud)
  4. 尝试手动安装: 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)

注意:有一个文件说明.

我该怎么做才能安装这个软件包?


包页面上的链接已经死亡(对于Windows构建包源).

install packages r

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

R:具有重复值的循环

我正在尝试编写一个循环来搜索data.frame B(date_B[j])中的正确日期,并将相关值复制到与同一日期相关X_B[j]X_A[i]变量中date_A[i].

挑战在于:a)目标data.frame A具有几个相同的日期,但b)不系统地具有data.frame(B)具有的所有日期.(B)包括所有需要的日期.因此,数据帧具有不同的长度.

问题:

  1. 为什么以下循环不起作用,但不返回错误消息?
  2. 怎么解决?
  3. 在R中还有其他方法可以解决这个问题吗?

数据框是:

    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)

r while-loop

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

strsplit符号"|" 导致R中的非字符错误消息

非常感谢你的帮助.

是.我应该提供一个更好的例子.

这是我的输入文件(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)

r strsplit

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

标签 统计

r ×5

while-loop ×2

install ×1

loops ×1

packages ×1

strsplit ×1