R等同于SAS do-loop

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R等同于SAS do-loop相关的知识,希望对你有一定的参考价值。

为了创建独特的组合,我以前使用下面的SAS代码,我想知道R相当于此。任何人都可以帮我在R做同样的事情,我对R很新,只是探索。

DATA B ;

DO i = 1 to 2 ;

DO j = 1 to 5 ;

DO k = 1 to 4 ;

OUTPUT ;

END ;

END ;

END ;

RUN ;

DATA B ;

SET  B ;

IJK = CATX("-",i,j,k) ;

RUN ;

这将给我以下输出:

Obs i j k ijk

1 1 1 1 1-1-1

2 1 1 2 1-1-2

3 1 1 3 1-1-3 

4 1 1 4 1-1-4 

5 1 2 1 1-2-1 

...........
etc
答案
require(dplyr)
expand.grid(i = 1:2, j = 1:5, k = 1:4) %>% 
  arrange(i, j, k) %>% 
  mutate(ijk = paste(i, j, k, sep = '-'))
另一答案

你在尝试这样的事吗?

set.seed(2)

Obs <- 1:20
i <- sample(1:2, 20, replace = TRUE)
j <- sample(1:5, 20, replace = TRUE)
k <- sample(1:4, 20, replace = TRUE)
ijk <- paste(i,j,k, sep="-")
B <- data.frame(Obs,i,j,k,ijk); B

#    Obs i j k   ijk
# 1    1 1 4 4 1-4-4
# 2    2 2 2 2 2-2-2
# 3    3 2 5 1 2-5-1
# 4    4 1 1 1 1-1-1
# 5    5 2 2 4 2-2-4
# 6    6 2 3 4 2-3-4
# 7    7 1 1 4 1-1-4
# 8    8 2 2 2 2-2-2
# 9    9 1 5 3 1-5-3
# 10  10 2 1 4 2-1-4
# 11  11 2 1 1 2-1-1
# 12  12 1 1 1 1-1-1
# 13  13 2 5 3 2-5-3
# 14  14 1 5 4 1-5-4
# 15  15 1 3 2 1-3-2
# 16  16 2 4 4 2-4-4
# 17  17 2 5 4 2-5-4
# 18  18 1 2 4 1-2-4
# 19  19 1 4 3 1-4-3
# 20  20 1 1 3 1-1-3

以上是关于R等同于SAS do-loop的主要内容,如果未能解决你的问题,请参考以下文章

SAS do-Loops和set语句

什么是 SAS Enterprise Miner Score Node 的 R 等价物?

在R中重新创建SAS混合模型输出(包括F测试)

AppDomain 是不是等同于 .NET 代码的进程?

如何转换要在 R 中打开的 SAS (.sas) 文件? [关闭]

R语言SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化|附代码数据