Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 简洁地同时指定名称和值_R_Assign - Fatal编程技术网

R 简洁地同时指定名称和值

R 简洁地同时指定名称和值,r,assign,R,Assign,我发现自己经常写下面两行。有没有简洁的替代方案 newObj <- vals names(newObj) <- nams # This works, but is ugly and not necessarily preferred 'names<-'(newObj <- vals, nams) newObj您想要setNames功能 # Your example data vals <- 1:3 names <- LETTERS[1:3]

我发现自己经常写下面两行。有没有简洁的替代方案

      newObj  <- vals
names(newObj) <- nams

# This works, but is ugly and not necessarily preferred
'names<-'(newObj <- vals, nams)

newObj您想要
setNames
功能

# Your example data
vals <- 1:3
names <- LETTERS[1:3]
# Using setNames
newObj <- setNames(vals, names)
newObj
#A B C 
#1 2 3 
#您的示例数据

VAL名称这正是我要找的。谢谢非常有趣。所以你是说,如果我有一个1GB内存的对象,并且我很可能使用
名称,我不会说总是或所有对象类型,尤其是
data.frame
(在你发布的示例中)它确实如此。请参阅(由R core的一名成员)其中没有。
data.table
包试图避免与data.frame.+1相关的大量内部复制,
data.table
中也有
setnames
(小写n)。这使您可以通过名称轻松地更改特定名称;e、 g.
setnames(DT,“旧名字”、“新名字”)
vals <- c(1, 2, 3)
nams <- c("A", "B", "C") 
# Your example data
vals <- 1:3
names <- LETTERS[1:3]
# Using setNames
newObj <- setNames(vals, names)
newObj
#A B C 
#1 2 3 
library(data.table) # or library(bit)
setattr(vals, 'names', names)
name <- function(x, names){ setattr(x,'names', names)}


val <- 1:3
names <- LETTERS[1:3]
name(val, names)
# and it has worked!
val
## A B C 
## 1 2 3