全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1609 7
2020-12-23
各位大神,我想要从一个100行10列的矩阵中按照按下面的代码中的P值从大到小的顺序提取前k行,这种R代码应该怎么写,是要构造一个循环吗?set.seed(123)
x=rnorm(1000)
y=matrix(x,100,10)
F=sqrt(sum(diag(t(y)%*%y)))
S=apply(abs(y),1,sum)
P=S^2/F^2



二维码

扫码加我 拉你入群

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

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

全部回复
2020-12-23 19:13:17
复制代码

二维码

扫码加我 拉你入群

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

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

2020-12-23 20:07:21
那个,function里的A改成x
二维码

扫码加我 拉你入群

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

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

2020-12-23 20:09:15
llb_321 发表于 2020-12-23 20:07
那个,function里的A改成x
好的,谢谢您,我试一下。
二维码

扫码加我 拉你入群

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

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

2020-12-23 20:28:47
llb_321 发表于 2020-12-23 20:07
那个,function里的A改成x
您好,我想给x加个绝对值,矩阵每行元素的绝对值求和,怎么就出错了
topK <- function (x,k) {
  if (k <= dim(x)[1]) x[which(rank(rowSums(abs(x))>(dim(x)[1]-k)),]
  else
    print("Err: the specified k is out of matrix dimension")
}
二维码

扫码加我 拉你入群

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

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

2020-12-24 04:36:17
任潇潇 发表于 2020-12-23 20:28
您好,我想给x加个绝对值,矩阵每行元素的绝对值求和,怎么就出错了
topK
x[which(rank(rowSums(abs(x)))>(dim(x)[1]-k)),]
您改的代码里abs(x)后面少了个 ")"
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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