我使用了一些变量,但是当它被使用时,我再也不需要它了,所以我需要删除它并释放内存,但函数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但内存没有被释放?
R版本2.11.1在Windows 7上为32位
我有两个数据集:data_A和data_B:
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)
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.如上例所示,结果将是:
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)
那我怎么能实现呢?
我有一个.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) 我有一个 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版本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非常大,我可能需要三天才能完成这个程序,所以我来这里寻求帮助,这个算法可以改进吗?
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()使用,当我需要删除它时,我必须清除所有工作区。有没有什么功能可以删除呢?
我在使用elseR中的函数时遇到了一些困难.当我输入时?else,我没有得到任何关于该函数的帮助else.
当我运行以下程序时:
i=1
if(i>1){print("aa")}
else{print("bb")}
Run Code Online (Sandbox Code Playgroud)
在else没有工作.有人能告诉我原因吗?
R版本2.11.1在Windows 7上为32位
现在我得到代码: lapply(x, rank)
但我希望"等级"为: ties.method="first"
我有一些日期格式如下:
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中实现它?