【发布时间】:2018-12-05 18:31:22
【问题描述】:
我从 Stata 搬到了匹配命令的问题。 简单地说,我想遍历数据框中的变量并进行操作/分析,如下面的代码。有没有办法,例如定义一个临时变量(tmp)在循环内携带选定的变量并直接寻址(如 dt$tmp)。我很感激你的cmets。
下面的代码循环遍历列以获取数据帧的变量名称和标签。
#Build the dataframe
dt <- data.frame(x=1:5,y=seq(1,10,2),z=seq(1,15,3))
attr(dt$x,'label') <- "First"
attr(dt$y,'label') <- "Second"
attr(dt$z,'label') <- "Third"
#loop over variables and store names and labels in a dataframe
names<- names(dt)
vars<- data.frame(id = 1:ncol(dt),var=NA,varlab =NA)
i <- 0
for(n in names){
i <- i + 1
nlab <- attr(dt[[paste(n)]], 'label')
vars$var[i] <- n
vars$varlab[i] <- nlab
}
看到这个:
id var 变量
1 x 第一
2年秒
3 z 第三
【问题讨论】:
-
你能提供一个可重现的例子吗?
-
我不了解 Stata,所以我也不确定您要完成什么。如果您正在寻找一本好的参考书来帮助您入门,我会推荐 R for Data Science(在线 r4ds.had.co.nz)。有时,从一种语言迁移到另一种语言时的问题是您对数据对象的看法发生了变化。在一种语言中看起来微不足道的东西在另一种语言中是闻所未闻的。祝你好运!