我有一个通过导入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)?
答案 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"),]