循环变量

时间:2018-06-27 00:30:13

标签: r loops variables

我从Stata搬来,在匹配命令时遇到问题。 简单来说,我想遍历数据框中的变量并进行操作/分析,如下面的代码所示。有没有一种方法,例如定义一个临时变量(tmp)以便在循环内携带所选变量并直接对其进行寻址(例如dt $ tmp)。感谢您的评论。

下面的代码遍历各列,以获取数据框的变量名和标签。

#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 varlab

1 x第一
2年
3 z第三

1 个答案:

答案 0 :(得分:2)

很难解释您要完成的工作。例如,除非tmp最初是df中的一列,否则它将不起作用,但是我们很难看到您的屏幕。如果需要将tmp定义为新列,则应在新列中绑定或dplyr :: mutate。

如果您只是勾勒出您想要的外观,那也会有所帮助。您可以使一切通用,而只是帮助人们提供帮助。