全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2622 4
2018-11-04
请问,为什么我的数据转置后,年份变量变到了最左边一列,最左边一列不应该显示1,2,3,4这些数吗?我怎么才能更改它呢?
变量名变成X我知道是因为转置前这列变量没有名称,所以自动命名为X,但是为什么1990,1991这些年份前边也加了X?


微信图片_20181104114715.png
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-11-6 10:55:01
最左边是行名`row.names`,应该是转置前的列名。简单的方法是在读入数据集时不要加列名。复杂的方法就是把现在的行名给一个新的变量后,再调换顺序到第一列,并重新把1:n给行名。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-11-6 14:46:01
## 原数据myda中 每个变量的数据类型须相同
##  myda  为data.frame
row_names<-rownames(myda)  ##获取行名,用为转置后数据集的列变量名

   transda<-       ##  转置后的数据集
         myda%>%
         purrr::transpose()%>%  
         purrr::modify_depth(1,unlist)%>%   
         magritrr::set_names(row_names)%>%  ##  转置后的列变量名取为原数据集myda 的行名
         as.data.frame()   ##  原列变量名,变成了行名
##  此法,仅仅转置,但其他所有数据集属性均得到保留。。
##  t()  会“不经意间”改变数据集属性。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-11-7 19:55:05
lemon.d 发表于 2018-11-6 10:55
最左边是行名`row.names`,应该是转置前的列名。简单的方法是在读入数据集时不要加列名。复杂的方法就是把现 ...
好滴,谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-11-7 19:56:07
jgchen1966 发表于 2018-11-6 14:46
## 原数据myda中 每个变量的数据类型须相同
##  myda  为data.frame
row_names%
谢谢啦,我也发现t()会把我的数据库转变为矩阵,所以我每次都是as.data.frame(t())
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群