R语言创建数组并设置名称未生效,请求问题排查
解决数组命名不生效的问题
嗨,我来帮你搞定这个数组命名的小问题~你遇到的情况是因为数组(array)是多维结构,不能直接用names()函数来设置维度名称,得用专门的dimnames属性才行,我给你详细说说:
为什么原来的方法不行?
names()函数主要是给一维向量、列表这类对象命名的。对于多维数组来说,虽然你用names(arr)赋值不会报错,但R其实是把数组扁平化后给每个元素单独命名,这完全不是你想要的给每一列设置名称的效果,所以看起来就像没生效一样。
正确的两种解决方法
方法1:创建数组时直接指定dimnames
在初始化数组的时候,直接通过dimnames参数设置维度名称,这里你的数组是1行5列的二维结构,所以dimnames是一个列表,第一个元素是行名(不需要的话设为NULL),第二个元素是列名:
arr <- array(dim = c(1,5), dimnames = list(NULL, c("Year", "Month", "Day", "Name", "Surname")))
方法2:创建后修改dimnames
如果已经创建了数组,也可以事后修改dimnames属性:
arr <- array(dim = c(1,5)) dimnames(arr) <- list(NULL, c("Year", "Month", "Day", "Name", "Surname"))
验证效果
现在你打印一下数组,就能看到预期的列名了:
print(arr) # Year Month Day Name Surname # [1,] NA NA NA NA NA
内容的提问来源于stack exchange,提问作者Jack_Carver
相关产品推荐
相关产品推荐

