楼主: sssyunsheng
2422 5

[问答] R 程序怎么实现由A表生成B表 [推广有奖]

  • 2关注
  • 47粉丝

已卖:107份资源

博士生

52%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
4.4708
学术水平
47 点
热心指数
49 点
信用等级
43 点
经验
5127 点
帖子
201
精华
0
在线时间
306 小时
注册时间
2012-2-21
最后登录
2025-9-22

楼主
sssyunsheng 在职认证  发表于 2014-9-16 09:07:44 |AI写论文
3论坛币
各位大神请问R程序怎么从下表 OBK]NUSY7Z~KJRGHB6WH2.jpg
转化为

9M}BS~EQ]G2~5XRX(PQB0NE.jpg
关键词:R程序 程序

沙发
yywan0913 在职认证  发表于 2014-9-16 09:07:45
  1. dat=data.frame(VAR1=c("A1","A2","A3","A1","A2","A1","A2","A3"),VAR2=c("B1","B2","B1","B2","B1","B1","B1","B1","B2"))
  2. library(reshape2)
  3. x=melt(dat)
  4. d=rbind(cbind(acast(x,VAR1~VAR1),acast(x,VAR1~VAR2)),cbind(acast(x,VAR2~VAR1),acast(x,VAR2~VAR2)))
复制代码

藤椅
hyu9910 在职认证  发表于 2014-9-16 10:11:22
没有给出生成规则啊?  如果手动的,你会怎么做出来?

板凳
sssyunsheng 在职认证  发表于 2014-9-19 07:50:42
yywan0913 发表于 2014-9-16 09:07
最家答案已经给您了,虽然赢用的dcast解决了。
另外,朋友,能否帮忙:一个数据框中有很多列,有些列只有一个重复的数值,能否将这种列找出来并删除,

报纸
yywan0913 在职认证  发表于 2014-9-19 15:06:34
  1. dat=data.frame(a=1:6,b=3,c=2:7,d=3:8,e=9)
  2. f=function(x) length(unique(names(table(x))))   ##或者  f=function(x) length(unique(x))
  3. t=apply(dat,2,f)
  4. x=which(t==1)
  5. data=dat[,-x]
复制代码

地板
sssyunsheng 在职认证  发表于 2014-9-19 18:33:23
yywan0913 发表于 2014-9-19 15:06
谢谢你啊,非常棒

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-22 02:39