楼主: yjbxjg
16696 22

[问答] 请教R中的 if else 问题 [推广有奖]

11
daishen 发表于 2014-9-16 11:04:25
yjbxjg 发表于 2014-9-16 10:41
感觉很高深,说实话我没看懂,R里面也运行不了。。。我想问一下,你是怎么学的?
这个网页显示有问题,有一行代码没有显示出来,所以你运行不出来。

12
yjbxjg 发表于 2014-9-16 12:41:40
daishen 发表于 2014-9-16 11:04
这个网页显示有问题,有一行代码没有显示出来,所以你运行不出来。
少了什么代码?我运行的时候R里面说data.table没有这个对象

13
daishen 发表于 2014-9-16 14:27:46
yjbxjg 发表于 2014-9-16 12:41
少了什么代码?我运行的时候R里面说data.table没有这个对象
data = data[,z := rep(1:5,rle(y%in%dat[,y])$lengths[which(1:length(rle(y%in%dat[,y])$lengths) %% 2 == 1)] + 1)]

14
daishen 发表于 2014-9-16 14:34:27
daishen 发表于 2014-9-16 14:27
data = data[,z := rep(1:5,rle(y%in%dat[,y])$lengths[which(1:length(rle(y%in%dat[,y])$lengths) %% 2 ...
这个网页有神经病,刚才出现了正确的代码,谁知道我编辑了一下代码又错误了。在发一遍看看。

data = data[,z := rep(1:5,rle(y%in%dat[,y])$lengths[which(1:length(rle(y%in%dat[,y])$lengths) %% 2 == 1)] + 1)]

15
daishen 发表于 2014-9-16 14:35:00
daishen 发表于 2014-9-16 14:34
这个网页有神经病,刚才出现了正确的代码,谁知道我编辑了一下代码又错误了。在发一遍看看。

data = d ...
这回正常了。

16
yywan0913 在职认证  发表于 2014-9-16 14:58:35
daishen 发表于 2014-9-16 14:35
这回正常了。
这个。。,
神经病是常有。
此网页编辑器支持latex效果,所有如果同行出现两个及以上的$,就会以latex语言解析出来,故会出现斜体形式,
而导致你们看到的错误。因为$没了。

  一定要这样写的话就不要同一行出现两个$

可以这样
a=y$lengths
b=y$GC
a*b
等等


17
yjbxjg 发表于 2014-9-16 15:36:49
daishen 发表于 2014-9-16 14:35
这回正常了。
这是我运行的结果,好像问题还挺多的,不知道怎么解决
> library(data.table)
Error in library(data.table) : there is no package called ‘data.table’
>
> # 5类划分
>
> dat <- data.table(x = 1:5,y = c(0.001,0.01,0.05,0.1,1),z = c('***','**','*','.',''))
Error: could not find function "data.table"
> setkey(dat,x)
Error: could not find function "setkey"
>
> # 把数据按照类别分组
>
> data = data.table(x = 1:1001,y = seq(0,1,0.001))
Error: could not find function "data.table"
> data = data[,z := rep(1:5,rle(y%in%dat[,y])lengths[which(1:length(rle(ylengths) %% 2 == 1)] + 1)]
Error: unexpected symbol in "data = data[,z := rep(1:5,rle(y%in%dat[,y])lengths"
> setkey(data,z)
Error: could not find function "setkey"
> data = data[dat]
Error: object 'dat' not found
> setkey(data,x)
Error: could not find function "setkey"
>
> # 模拟一组数据
>
> yourdata = data.table(x = 1:10,p.vaule = round(abs(rnorm(10)/10),3))
Error: could not find function "data.table"
> setkey(yourdata,x)
Error: could not find function "setkey"
>
> yourdata[data,nomatch=0]
Error: object 'yourdata' not found

18
daishen 发表于 2014-9-16 16:19:58
#  首先要下载并安装data.table

library(data.table)

# 5类划分

dat = data.table(x = 1:5,y = c(0.001,0.01,0.05,0.1,1),z = c('***','**','*','.',''))
setkey(dat,x)

# 把数据按照类别分组

data = data.table(x = 1:1001,y = seq(0,1,0.001))

# 按照yywan0913的提示,先做一个临时变量

temp = rle(data[,y] %in% dat[,y])$lengths

data = data[,z := rep(1:5,temp[which(1:length(temp) %% 2 == 1)] + 1)]
setkey(data,z)
data = data[dat]
setkey(data,x)

# 模拟一组数据

yourdata = data.table(x = 1:10,p.vaule = round(abs(rnorm(10)/10),3))
setkey(yourdata,x)

yourdata[data,nomatch=0]

  x p.vaule z     y   y.1 z.1
1:  1   0.108 1 0.000 0.001 ***
2:  2   0.080 1 0.001 0.001 ***
3:  3   0.134 2 0.002 0.010  **
4:  4   0.028 2 0.003 0.010  **
5:  5   0.039 2 0.004 0.010  **
6:  6   0.126 2 0.005 0.010  **
7:  7   0.045 2 0.006 0.010  **
8:  8   0.031 2 0.007 0.010  **
9:  9   0.065 2 0.008 0.010  **
10: 10   0.029 2 0.009 0.010  **




已有 1 人评分学术水平 热心指数 信用等级 收起 理由
yjbxjg + 2 + 2 + 2 热心帮助其他会员

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

19
yjbxjg 发表于 2014-9-16 17:00:19
daishen 发表于 2014-9-16 16:19
#  首先要下载并安装data.table

library(data.table)
运行出来啦,多谢多谢~

20
xucaifeng66 发表于 2014-9-16 17:17:35
逻辑表示

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

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