boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - R Matrix 初级问题
相关主题
R:matrix
R help: matrix and vector operation
R: matrix to vector
How to avoid if statement in R
新手问个R里vectorization的问题
请教一个R的问题,谢谢!
"&" vs "&&" in R
有 SAS 或者 R 或者其他program的 code 能 查 fake email的不?
R里为什么3.1+2.7==5.8是false?
An error message in R
相关话题的讨论汇总
话题: true话题: false话题: matrix话题: 问题话题: 初级
进入Statistics版参与讨论
1 (共1页)
s*****r
发帖数: 223
1
刚开始学学了一节R, 不要笑话我问这么初级的问题
x <- matrix(1:6, 2, 3)
x[,2] <- c(7,1)
a <- c(4, 6, 8)
问题1
x[(a>5|x[1,]==2)]
我怎么都不理解这个输出是
[1] 2 7 5 6
我可以理解
a>5|x[1,]==2
[1] FALSE TRUE TRUE
X是matrix
这样X[FALSE TRUE TRUE]为什么就是
[1] 2 7 5 6
问题2
b) x[(a>5|x[1,]==2)[1:2],]
这又是怎么得到
[1] 2 1 6
谢谢
s******s
发帖数: 13035
2
那个logic的vector长度不够,被recycle了

【在 s*****r 的大作中提到】
: 刚开始学学了一节R, 不要笑话我问这么初级的问题
: x <- matrix(1:6, 2, 3)
: x[,2] <- c(7,1)
: a <- c(4, 6, 8)
: 问题1
: x[(a>5|x[1,]==2)]
: 我怎么都不理解这个输出是
: [1] 2 7 5 6
: 我可以理解
: a>5|x[1,]==2

v*******e
发帖数: 11604
3

1. x如果当作一个matrix来index的话,需要两个参数,一个行一个列。如果你只提供
一个参数,那么不是把x当作matrix来index的,而是当成一个一维的vector。你求x[c(
FALSE,TRUE,TRUE)]的时候,只有一个参数,所以当成vector来index的,由于x长度是6
,你的index长度是3,所以index是复用的,相当于x[c(c(FALSE,TRUE,TRUE),c(FALSE,
TRUE,TRUE))],这样在x的值c(1,2,7,1,5,6)中选出了第2,3,5,6个,即得到2,7,5,6
2.你用两个参数来index的,第一个是c(FALSE,TRUE),选了第二行;第二个参数是在逗
号后面,没给出,所以缺省是选择所有的列,所以你得到c(2,1,6)

【在 s*****r 的大作中提到】
: 刚开始学学了一节R, 不要笑话我问这么初级的问题
: x <- matrix(1:6, 2, 3)
: x[,2] <- c(7,1)
: a <- c(4, 6, 8)
: 问题1
: x[(a>5|x[1,]==2)]
: 我怎么都不理解这个输出是
: [1] 2 7 5 6
: 我可以理解
: a>5|x[1,]==2

s*****r
发帖数: 223
4
万分感谢 verdelite和 shakuras, 这下明白了!
1 (共1页)
进入Statistics版参与讨论
相关主题
An error message in R
a R question
问个R的小题目
请教一个R的问题,quantcut
Random forests on imbalanced data (转载)
请教个R的问题
R这是逗我玩
Matlab怎样把matrix的data转到vector里面?
这个R程序能帮改进一下吗?
问一个R的结果写到TXT文件问题
相关话题的讨论汇总
话题: true话题: false话题: matrix话题: 问题话题: 初级