[英]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
可见,列c1
和c2
重复两次。 但是我只能访问对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.