我的数据框中有一些重复的字符串。
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"]
?
注意:数据框重复冒号的原因是嵌套列表转换为数据框
答案 0 :(得分:2)
如果你只想要c1列,试试这个
df[1,names(df) %in% ('c1')]
如果您想要所有具有重复名称的列的值,请尝试此
df[1,names(df) %in% names(df)[duplicated(names(df))]]
答案 1 :(得分:0)
你可以试试这个
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])))