我正在开发一个程序,现在我正在寻找一种在上传文件时检查列名称的方法。如果名称不唯一,则应写入错误。有什么办法可以做到这一点吗?
例如,如果我有这些 df:
> a <- c(10, 20, 30)
> b <- c(1, 2, 3)
> c <- c("Peter", "Ann", "Mike")
> test <- data.frame(a, b, c)
Run Code Online (Sandbox Code Playgroud)
和:
library(dplyr)
test <- rename(test, Number = a)
test <- rename(test, Number = b)
> test
Number Number c
1 10 1 Peter
2 20 2 Ann
3 30 3 Mike
Run Code Online (Sandbox Code Playgroud)
如果这是一个文件,我如何检查列名是否唯一。好的结果只能是对或错!
谢谢!
我们可以用:
any(duplicated(names(df))) #tested with df as iris
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
关于OP的数据:
any(duplicated(names(test)))
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
可以使用 @sindri_baldur 和 @akrun 建议的以下内容来简化上述内容
anyDuplicated(names(test))
Run Code Online (Sandbox Code Playgroud)
如果您想知道有多少重复:
length(which(duplicated(names(test))==TRUE))
[1] 1
Run Code Online (Sandbox Code Playgroud)
这也可以简化为(按照@sindri_baldur的建议:
sum(duplicated(names(test)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3159 次 |
| 最近记录: |