将矩阵字符转为数值时,如何保留原行列标题?
解决矩阵转数值时保留列标题的方法
你可以通过两种方式解决这个问题:
方法一:先保存原列名,转换后重新赋值
先把原矩阵的列标题存下来,等完成数值转换后,再把标题赋值给新矩阵:# 保存原矩阵的列名 original_cols <- colnames(cyc_daily_v4) # 转换数值并重建矩阵 cyc_daily_v5 <- matrix(as.numeric(cyc_daily_v4), ncol = ncol(cyc_daily_v4)) # 恢复列标题 colnames(cyc_daily_v5) <- original_cols方法二:直接修改矩阵元素的存储模式(更高效)
不用重建新矩阵,直接修改原矩阵的元素类型,这样行列标题会自动保留:cyc_daily_v5 <- cyc_daily_v4 # 将矩阵元素模式改为数值型 mode(cyc_daily_v5) <- "numeric"
原理是:你之前用matrix()重建矩阵时,新矩阵不会自动继承原矩阵的colnames属性,所以要么提前存好再赋值,要么直接修改原矩阵的元素类型,避免重建导致属性丢失。
内容的提问来源于stack exchange,提问作者Marc P
相关产品推荐
相关产品推荐

