数据帧列表 - 从每个数据帧中提取一行

时间:2018-05-27 19:29:00

标签: r excel list dataframe lapply

我有一个通过导入excel文件创建的数据框列表,这些文件没有唯一的结构,例如:

有时我在单元格"Contact"中有一个标签A8,有时在A9中。但它始终标记为"Contact"

如果联系人处于固定位置,我知道如何提取"Contact",例如A9。在那种情况下,我会写这段代码:

lapply(test,"[",9,1,drop=FALSE)

如何更改代码以动态查找标签"Contact"在每个数据框中出现在哪一行?

谢谢!

我看到我不够清楚。好的,这是我列表中2 DF的图片。您可以看到“公司名称”值位于第一个DF的第8行和第二个DF的第10行。如何使用此函数动态获取行(test,“[”,9,1,drop = FALSE)?

Example of my data

2 个答案:

答案 0 :(得分:0)

假设test是您的数据框,字符串"Contact"位于第一列和未知行中。 然后,您可以将第一列定义为数据帧的行名称。

test <- data.frame(names=c("contact","other"), x=c(1,2), y=c(3,4))
rownames(test) <- test[,1]

并通过

访问相关行
test["contact",]

答案 1 :(得分:0)

我应该使用which()来查找包含目标字符串的行,如下所示:

df <- data.frame(cont = c(rep("Some data",7),"Contact",rep("Some data",2)), val = 1:10, stringsAsFactors = F)
df[which(df$cont == "Contact"),]