繁体   English   中英

在数据框中选择具有相同列名的所有行

[英]select all rows with same column name in dataframe

我有一个重复的姓氏的数据框。

df<-data.frame(matrix(ncol = 8, nrow = 0))
df<-rbind(df,c(1:8))
colnames(df) <- c("c1","c2","c3","c4","c1","c2","c5","c6")

> df
  c1 c2 c3 c4 c1 c2 c5 c6
1  1  2  3  4  5  6  7  8

可见,列c1c2重复两次。 但是我只能访问对dataframe的调用中的第一个出现的列。

> df$c1
[1] 1
> df$c2
[1] 2
> df[,"c1"]
[1] 1
> df[,"c2"]
[1] 2

我如何才能访问所有值,即。 c1: 1, c1:5调用某种df[,"c1"]吗?

注意:数据框具有重复的别名的原因是由于将嵌套列表转换为数据框

如果您只想要c1列,请尝试此

df[1,names(df) %in% ('c1')]

如果您想要所有具有重复名称的列的值,请尝试执行此操作

df[1,names(df) %in% names(df)[duplicated(names(df))]]

你可以试试这个

df <- data.frame(matrix(ncol = 8, nrow = 0));
df <- rbind(df, c(1:8));
colnames(df) <- c("c1", "c2", "c3", "c4", "c1", "c2", "c5", "c6");
df[, names(df) == 'c1'];
sapply(unique(names(df)), function(x) unname(unlist(df[, names(df) == x])))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM