首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中赋值算子的LHS上做一个函数工作

在R中赋值算子的LHS上做一个函数工作
EN

Stack Overflow用户
提问于 2020-06-30 23:00:37
回答 1查看 79关注 0票数 1

似乎我应该知道答案,但我不知道。我如何才能写一个函数,将工作在左边的赋值运算符?例如,在下面的示例中,我如何创建一个名为my.rownames的函数,我可以在<-的LHS上将rownames分配给foo

代码语言:javascript
复制
# get rownames and change them
foo <- rownames(mtcars)
foo <- paste("x",foo)
# put altered rownames back
rownames(mtcars) <- foo
# create a new function my.rownames
my.rownames <- rownames
# works
my.rownames(mtcars)
# doesn't work
my.rownames(mtcars) <- foo
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-30 23:04:40

根据?rownames

row.names返回字符向量。names <-返回更改行名的数据帧。

代码语言:javascript
复制
`my.rownames<-` <- `rownames<-`

另外,

有获取和设置行名的通用函数,数组的默认方法。这里描述的是data.frame方法。.rowNamesDF<-是一个(非泛型替换)函数,用于设置数据帧的行名,并带有额外的参数make.names。此函数仅作为解决方案存在,因为我们无法轻松地更改row.name<-泛型,而不会破坏现有包中的遗留代码。

它应该能工作

代码语言:javascript
复制
data(mtcars)
my.rownames(mtcars) <- foo
head(mtcars)
#                     mpg cyl disp  hp drat    wt  qsec vs am gear carb
#x Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
#x Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
#x Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
#x Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
#x Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
#x Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62667326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档