动态使用 attr 函数
Using attr function dynamically
考虑以下数据框
df<-data.frame(a=c(1,2,3))
我可以通过以下方式展示它:
df
或
get("df")
另外,我可以通过这样做给它一个属性:
attr(df,"anyAttribute")<-"df attribute"
attributes(df)
$names
[1] "a"
$class
[1] "data.frame"
$row.names
[1] 1 2 3
$anyAttribute
[1] "df attribute"
有什么方法可以动态地为数据帧赋予属性吗?。我想要的是这样的:
> attr(get("df"),"anyAttribute")<-"df attribute"
Error in attr(get("df"), "anyAttribute") <- "df attribute" :
destino de la asignación se expande a un objeto fuera del lenguaje
你是这个意思吗?
r <- `attr<-`(get("df"), "anyAttribute", "df attribute")
attributes(r)
# $names
# [1] "a"
#
# $class
# [1] "data.frame"
#
# $row.names
# [1] 1 2 3
#
# $anyAttribute
# [1] "df attribute"
我们可以使用assign
更新原始对象
tmp <- get('df')
attr(tmp, 'anyAttribute') <- 'df attribute'
assign('df', tmp)
-输出
> str(df)
'data.frame': 3 obs. of 1 variable:
$ a: num 1 2 3
- attr(*, "anyAttribute")= chr "df attribute"
考虑以下数据框
df<-data.frame(a=c(1,2,3))
我可以通过以下方式展示它:
df
或
get("df")
另外,我可以通过这样做给它一个属性:
attr(df,"anyAttribute")<-"df attribute"
attributes(df)
$names
[1] "a"
$class
[1] "data.frame"
$row.names
[1] 1 2 3
$anyAttribute
[1] "df attribute"
有什么方法可以动态地为数据帧赋予属性吗?。我想要的是这样的:
> attr(get("df"),"anyAttribute")<-"df attribute"
Error in attr(get("df"), "anyAttribute") <- "df attribute" :
destino de la asignación se expande a un objeto fuera del lenguaje
你是这个意思吗?
r <- `attr<-`(get("df"), "anyAttribute", "df attribute")
attributes(r)
# $names
# [1] "a"
#
# $class
# [1] "data.frame"
#
# $row.names
# [1] 1 2 3
#
# $anyAttribute
# [1] "df attribute"
我们可以使用assign
更新原始对象
tmp <- get('df')
attr(tmp, 'anyAttribute') <- 'df attribute'
assign('df', tmp)
-输出
> str(df)
'data.frame': 3 obs. of 1 variable:
$ a: num 1 2 3
- attr(*, "anyAttribute")= chr "df attribute"