如何简单地从数据帧生成编号列表?

时间:2018-12-27 01:18:34

标签: r

我正在尝试构造一个代码块,在从Excel工作表中输入数据后,将构建过去五年内“参考出版物”的数据框(通过几行子集命令对初始数据进行过滤1和2)。我在下面粘贴了一些代码,这些代码可以帮助解释我正在尝试执行的操作以及如何执行此操作。

第三行pubsfive <- within(pubsfive, rwnum <- 1)用于初始化pubsfive数据帧内的新列。最后,我试图运行for循环,以尝试用行名(在这种情况下为1到10)对每行编号。我不完全知道我在for循环中正在做什么,但是我正在尝试为名为rwnum的新列中的每一行编码,该列仅输出行号。我应该能够连接所有列,然后将对象传递到kable,然后打印一个不错的5年出版物列表。

这可能不是最雄辩的代码,因此我愿意接受任何澄清的问题或提示。

pubsfive <- subset(pubs, pubs$Contribution == "Refereed Publications")
pubsfive<- subset(pubsfive, pubsfive$year >= 2014, select = c(Authors, year, Title))
pubsfive <- within(pubsfive, rwnum <- 1)
pubsfive <- for (i in 1:nrow(pubsfive))
  {within(pubsfive, rwnum <- rownames(pubsfive)[i])}

1 个答案:

答案 0 :(得分:1)

我不确定这是怎么回事:

pubsfive <- subset(pubs,
     Contribution == "Refereed Publications" & year > 2014,
     select = c(Authors, year, Title))
pubsfive$rwnum <- rownames(pubsfive)

第一行是前两行的紧凑方式,第三行将向量分配给新列rwnum ...如果您想首先使用行号,则可能更喜欢

pubsfive <- data.frame(rwname=rownames(pubsfive),
                       pubsfive)

我不清楚您要的是行名还是seq(nrow(pubsfive)) ...