获取R数据帧的行号

时间:2011-04-05 14:46:58

标签: r

关于R中的数据帧的问题。我想从数据帧中提取一行,以及它在原始数据帧中的位置(行号)。该想法是创建新的数据帧,其包括从先前数据帧提取的行信息,以及来自先前数据帧的行位置。

patchLocalNo <- patchList[which(patchListTop5$sensitivity == patchLocalSpec),]

我想要做的是从patchList获取满足条件的行号,并将它们添加到patchLocalNo中的列。

提前感谢您,我已经在线搜索并询问了同事,而我所能想到的只是在perl中对数据进行预处理。

2 个答案:

答案 0 :(得分:9)

我想你已回答了自己的问题。

其中的结果()是一个包含要提取的行号的向量。

df <- data.frame(x = runif(20))

w <- which(df$x > 0.9)
w
[1]  9 11 14 16 20

data.frame(which=w, df=df[w, ])

  which        df
1     9 0.9437138
2    11 0.9995509
3    14 0.9237888
4    16 0.9526003
5    20 0.9191727

答案 1 :(得分:1)

您可以使用一行或两行代码执行此操作:

rNo <- as.integer(rownames(patchList[which(patchListTop5$sensitivity == patchLocalSpec),]))
patchLocalNo <- cbind(patchLocalNo[rNames,], rNo)