楼主: 统计R浪人
3738 4

[问答] 请教,奇怪的矩阵转置问题,t()命令不执行 [推广有奖]

  • 0关注
  • 3粉丝

博士生

0%

还不是VIP/贵宾

-

威望
0
论坛币
26 个
通用积分
28.6295
学术水平
18 点
热心指数
25 点
信用等级
10 点
经验
2097 点
帖子
132
精华
0
在线时间
221 小时
注册时间
2013-5-22
最后登录
2025-10-26

楼主
统计R浪人 发表于 2013-6-4 08:30:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  1. rm=(list=ls())
  2. library(Matrix)
  3. data = as.matrix(read.csv("pydata1.csv",header = TRUE))
  4. i=2
  5. u=data[i,3:7]
  6. print(u)
  7. n=t(u)
  8. print(n)
  9. c=rbind(1,n)
  10. print(c)
复制代码
执行结果:
> rm=(list=ls())
> library(Matrix)
> data = as.matrix(read.csv("pydata1.csv",header = TRUE))
> i=2
> u=data[i,3:7]
> print(u)
   V1    V2    V3    V4    V5
20.40 60.13 59.25 50.00  0.15
> n=t(u)
> print(n)
       V1    V2    V3 V4   V5
[1,] 20.4 60.13 59.25 50 0.15
> c=rbind(1,n)
> print(c)
       V1    V2    V3 V4   V5
[1,]  1.0  1.00  1.00  1 1.00
[2,] 20.4 60.13 59.25 50 0.15
>
但是不是我想要得下面的结果,这是为什么啊:
> c
    [,1]
    1.00
V1 20.40
V2 60.13
V3 59.25
V4 50.00
V5  0.15

请大家帮忙,谢谢!

二维码

扫码加我 拉你入群

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

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

关键词:Library matrix print rbind BRARY 矩阵

回帖推荐

hugebear 发表于3楼  查看完整内容

u=data

沙发
统计R浪人 发表于 2013-6-4 10:13:31
如果数据u是一行或者是一列,转置的时候用n=t(t(u));如果u是多于一行或者一列时,用n=t(u)即可
已有 1 人评分热心指数 收起 理由
qoiqpwqr + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

藤椅
hugebear 发表于 2013-6-4 10:14:04
u=data[i,3:7, drop = FALSE]
已有 1 人评分论坛币 收起 理由
admin_kefu + 100 热心帮助其他会员

总评分: 论坛币 + 100   查看全部评分

板凳
hugebear 发表于 2013-6-4 10:16:00
when you are only subsetting one row of your matrix, this row becomes a vector (whose class is "vector" but not "matrix"), use the argument "drop = FALSE" to maintain the matrix class.
已有 1 人评分热心指数 收起 理由
qoiqpwqr + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

报纸
统计R浪人 发表于 2013-6-4 10:18:05
  1. u=data[i,3:7, drop = FALSE]
复制代码

这样也可以的,学习了,谢谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 16:20