小编Pep*_*iCo的帖子

在R中释放内存

我使用了一些变量,但是当它被使用时,我再也不需要它了,所以我需要删除它并释放内存,但函数rm()似乎没有帮助:

memory.size()
30.69
tmp=matrix(rnorm(6e5*20),6e5,20)
memory.size()
207.64
rm(tmp)
memory.size()
207.64
Run Code Online (Sandbox Code Playgroud)

这是否意味着我删除了tmp但内存没有被释放?

memory-management r

38
推荐指数
1
解决办法
4万
查看次数

如何将R中公共列上的两个数据帧与其他列合并?

R版本2.11.1在Windows 7上为32位

我有两个数据集:data_A和data_B:

DATA_A

USER_A USER_B ACTION
1      11     0.3
1      13     0.25
1      16     0.63
1      17     0.26
2      11     0.14
2      14     0.28
Run Code Online (Sandbox Code Playgroud)

DATA_B

USER_A USER_B ACTION
1      13     0.17
1      14     0.27
2      11     0.25
Run Code Online (Sandbox Code Playgroud)

现在,如果USER_A和USER_B相等,我想将data_B的ACTION添加到data_A.如上例所示,结果将是:

DATA_A

USER_A USER_B ACTION
1      11     0.3
1      13     0.25+0.17
1      16     0.63
1      17     0.26
2      11     0.14+0.25
2      14     0.28
Run Code Online (Sandbox Code Playgroud)

那我怎么能实现呢?

merge r plyr

23
推荐指数
2
解决办法
2万
查看次数

如何在R中读取具有未知编码的csv数据

我有一个.csv数据,我可以从网页上查看它,但是当我读到它时R,一些数据无法显示.数据可在此处获得home.ustc.edu.cn/~lanrr/data.csv

mydata = read.csv("http://home.ustc.edu.cn/~lanrr/data.csv", header = T)
View(mydata)  # show something like this:
# 9:39:37   665 600160  ??????  ????    ????    8.050   100 805.00  ??? ???        
  ???????   E004017669  665
  2 9:39:38 697 930 ????????    ????    ????    4.360   283 1233.88    
  ????  ??? ?????????   680001369   697
Run Code Online (Sandbox Code Playgroud)

数据包含一些中文单词,但如果我需要更改编码或做其他事情,我不会,之前有没有人遇到过这个问题?

mydata = read.csv("http://home.ustc.edu.cn/~lanrr/data.csv", 
                   encoding = "UTF-8", header = T, stringsAsFactors = F)
View(mydata)
# 9:39:37   665 600160  <U+00BE><U+07BB><U+00AF><U+00B9><U+0277><dd>    <c2><f4>  
  <U+00B3><f6>  <c2><f2><c2><f4>    8.050   100 805.00  <c8><da><U+022F>     
  <U+00B3><U+027D><U+00BB>  <c8><da><U+022F><c2><f4><U+00B3><f6>    E004017669  665
  2 9:39:38 …
Run Code Online (Sandbox Code Playgroud)

csv encode r input

7
推荐指数
2
解决办法
3万
查看次数

如何通过R从互联网下载文件

我有一个 url,我想通过 下载文件R,我注意到这download.file会有所帮助,但我的问题似乎有所不同:

url <- "http://journal.gucas.ac.cn/CN/article/downloadArticleFile.do?attachType=PDF&id=11771"
destfile <- "myfile.pdf"
download.file(url, destfile)
Run Code Online (Sandbox Code Playgroud)

它不起作用!我注意到如果我url的格式是xxx.pdf,那么上面的代码是没有问题的,否则下载的文件是损坏的。

有谁知道如何解决这个问题?

r download

6
推荐指数
1
解决办法
9095
查看次数

如何改进这个算法?

R版本2.11.1在Windows 7上为32位

我得到数据train.txt如下:

USER_A USER_B ACTION
1        7      0
1        8      1
2        6      2
2        7      1
3        8      2
Run Code Online (Sandbox Code Playgroud)

我将数据作为以下算法处理:

train_data=read.table("train.txt",header=T)
result=matrix(0,length(unique(train_data$USER_B)),2)
result[,1]=unique(train_data$USER_B)
for(i in 1:dim(result)[1])
{
    temp=train_data[train_data$USER_B%in%result[i,1],]
    result[i,2]=sum(temp[,3])/dim(temp)[1]
}
Run Code Online (Sandbox Code Playgroud)

结果是train_data中每个USER_B的得分.分数定义为:

得分USER_B =(USER_B的所有行动的总和)/(USER_B的推荐时间)

但是train_data非常大,我可能需要三天才能完成这个程序,所以我来这里寻求帮助,这个算法可以改进吗?

r

5
推荐指数
2
解决办法
283
查看次数

如何在 R 中的“blotter”包中使用 initPortf 后删除投资组合

initPortf在R中使用包中的初始化投资组合函数时blotter,我们可以初始化一个投资组合,例如:

currency("USD")
stock("SPY",currency="USD",multiplier=1)
b.strategy <- "bFaber"
initPortf(b.strategy,'SPY', initDate='1997-12-31') 
Run Code Online (Sandbox Code Playgroud)

但是当我们想要再次初始化投资组合时,我们必须先删除投资组合b.strategy:

initPortf(b.strategy, "SPY", initDate = "1997-12-31") : 
Portfolio bFaber already exists, use updatePortf() or addPortfInstr() to update it.
Run Code Online (Sandbox Code Playgroud)

此处无法rm()使用,当我需要删除它时,我必须清除所有工作区。有没有什么功能可以删除呢?

portfolio r package

5
推荐指数
1
解决办法
942
查看次数

R中的函数"else"

我在使用elseR中的函数时遇到了一些困难.当我输入时?else,我没有得到任何关于该函数的帮助else.

当我运行以下程序时:

i=1

if(i>1){print("aa")}

else{print("bb")}
Run Code Online (Sandbox Code Playgroud)

else没有工作.有人能告诉我原因吗?

if-statement r function

3
推荐指数
1
解决办法
181
查看次数

如何在R中的"lapply"函数中使用函数"rank"?

R版本2.11.1在Windows 7上为32位

现在我得到代码: lapply(x, rank)

但我希望"等级"为: ties.method="first"

r argument-passing rank

2
推荐指数
1
解决办法
491
查看次数

如何更改R中的日期格式

我有一些日期格式如下:

        V1  V2   V3
1 20100420 915   120
2 20100420 920   150
3 20100420 925   270
4 20100420 1530  281
Run Code Online (Sandbox Code Playgroud)

每行3列,第1行表示:2010-04-20 09:15 120

现在我想将其更改为1列(时间序列):

                   V3
1 20100420 09:15   120
2 20100420 09:20   150
3 20100420 09:25   270
4 20100420 15:30   281
Run Code Online (Sandbox Code Playgroud)

要么:

                   V3
1 20100420 9:15    120
2 20100420 9:20    150
3 20100420 9:25    270
4 20100420 15:30   281
Run Code Online (Sandbox Code Playgroud)

我怎么能在R中实现它?

format r date

-2
推荐指数
1
解决办法
585
查看次数