R等价于Stata本地或全局宏

use*_*406 5 r local stata stata-macros

我是Stata用户,想要学习R.

我有几个冗长的文件夹路径,在我的Stata代码中,我存储为本地宏.我在这两个文件夹中有多个文件可供我的分析使用.

我知道,在R中,每次我想引用其中一个文件夹中的文件时,我都可以更改工作目录,但这绝对不是一个好方法.即使我将文件夹路径存储为R中的字符串,我也无法弄清楚如何引用它们.例如,在Stata中我会使用`folder1'.

我想知道是否尝试在R中逐行重写Stata代码并不是学习R的最佳方法.

有人可以帮忙吗?

Eri*_*een 6

首先,作为前Stata的用户,让我推荐的R用Stata的用户.R上的Macros也有这篇文章.我认为@Nick Cox是对的,你需要学会以更不同的方式做事.但是和你一样(至少在这种情况下),我常常发现自己开始了一项新的任务,因为我之前已经知道如何在Stata中做这件事并从那里开始.有时我发现方法是相似的.有时,当不同的方法更好时,我可以使R像Stata一样(例如,循环与矢量化).

我不确定我是否会用以下内容捕捉你的问题,但让我试一试.

在Stata中,通常会写:

global mydata "path to my data directory/"
Run Code Online (Sandbox Code Playgroud)

要导入数据,我只需输入:

insheet using "${mydata}myfile.csv"
Run Code Online (Sandbox Code Playgroud)

作为一名前Stata用户,我想在R中做类似的事情.这就是我的工作:

mydata <- "path to my data directory/"
Run Code Online (Sandbox Code Playgroud)

要导入位于此目录中的csv文件并创建名为myfile的数据框,我将使用:

myfile <- read.csv(paste(mydata, "myfile.csv", sep=""))
Run Code Online (Sandbox Code Playgroud)

或者更有效率......

myfile <- read.csv(paste0(mydata, "myfile.csv"))
Run Code Online (Sandbox Code Playgroud)

我不是一个非常有效的R用户,所以也许其他人会看到这种方法的一些缺陷.


Cha*_*ase 5

也许你想要file.path()

a <- "c:"
b <- "users"
c <- "charles"
d <- "desktop"

setwd(file.path(a,b,c,d))
getwd()
#----
[1] "c:/users/charles/desktop"
Run Code Online (Sandbox Code Playgroud)

你可以包裹sourceread.XXX或周围的任何其他东西来做你想要的.