在R中提取变量名

vh0rcniy  于 2023-04-18  发布在  其他
关注(0)|答案(2)|浏览(270)

在R中,对于来自 Dataframe 的向量:
df$vector
是否有任何函数可用于提取向量名称,最好是字符串或字符,例如:

function(df$vector)

>"vector"

谢谢!
更新:
具体来说,我实际上是在尝试构建一个自定义函数,它涉及返回向量输入x的名称,这就是我现在正在做的:

function(x){
xname<-deparse(substitute(x))
cat("we are analysing",xname)
}

然而,向量x通常以df$variable的形式出现,并且在cat()打印句子中语法不正确。
因此,我想知道是否有一个函数可以从df$variable中提取variable作为字符串

jutyujz0

jutyujz01#

因为还没有答案,所以有几个选项取决于你想要的。正如上面有人提到的,你可以用它们各自的函数来获取列名和行名。我将用R中的iris数据库来演示:

rownames(iris)
colnames(iris)

它为列提供以下输出:

[1] "Sepal.Length" "Sepal.Width" 
[3] "Petal.Length" "Petal.Width" 
[5] "Species"

和一长串行名称:

[1] "1"   "2"   "3"   "4"   "5"   "6"  
  [7] "7"   "8"   "9"   "10"  "11"  "12" 
 [13] "13"  "14"  "15"  "16"  "17"  "18"

还有一个glimpse,它可以给你名字和细节:

glimpse(iris)

这包括变量的类型,多少行,多少列,它们的值等:

Rows: 150
Columns: 5
$ Sepal.Length <dbl> 5.1, 4.9, 4.7, 4.6, ~
$ Sepal.Width  <dbl> 3.5, 3.0, 3.2, 3.1, ~
$ Petal.Length <dbl> 1.4, 1.4, 1.3, 1.5, ~
$ Petal.Width  <dbl> 0.2, 0.2, 0.2, 0.2, ~
$ Species      <fct> setosa, setosa, seto~
zbdgwd5y

zbdgwd5y2#

不使用stringr包:
您可以使用以下命令提取$和它之前的所有内容

.*\\$

并以“”代替。
函数为:

function(x) {
  xname <- deparse(substitute(x))
  return( sub(".*\\$", "", xname) )
}

相关问题