最近,我开始在我的研究中使用R的推荐器包.
这是recommenderlab文件:
http://cran.r-project.org/web/packages/recommenderlab/vignettes/recommenderlab.pdf
本文档中有一些例子,但我有一个很大的问题.
首先,加载recommenderlab包和Jester5k数据集.
library("recommenderlab")
data(Jester5k)
Run Code Online (Sandbox Code Playgroud)使用Jester5k的最前1000个记录(用户)来学习.推荐算法是热门的.
r <- Recommender(Jester5k[1:1000], method="POPULAR")
Run Code Online (Sandbox Code Playgroud)然后预测第1001个用户的推荐列表.列出前5项.
recom <- predict(r, Jester5k[1001], n=5)<br/>
as(recom, "matrix")
Run Code Online (Sandbox Code Playgroud)输出:
[1] "j89" "j72" "j47" "j93" "j76"<br/>
Run Code Online (Sandbox Code Playgroud)
然后我检查上面5项的评级.
rating <- predict(r, Jester5k[1001], type="ratings")<br/>
as(rating, "matrix")[,c("j89", "j72", "j47", "j93", "j76")]
Run Code Online (Sandbox Code Playgroud)输出:
j89 j72 j47 j93 j76<br/>
2.6476613 2.1273894 0.5867006 1.2997065 1.2956333<br/>
Run Code Online (Sandbox Code Playgroud)
为什么排名前5位的是"j89""j72""j47""j93""j76",但j47的评分仅为0.5867006.
我不明白.
如何recommenderlab计算每个项目的评级ratingMatrix?
它如何产生TopN列表?
这是示例:
#include <stdio.h>
int main()
{
int x=35;
int y=-35;
unsigned int z=35;
unsigned int p=-35;
signed int q=-35;
printf("Int(35d)=%d\n\
Int(-35d)=%d\n\
UInt(35u)=%u\n\
UInt(-35u)=%u\n\
UInt(-35d)=%d\n\
SInt(-35u)=%u\n",x,y,z,p,p,q);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
Int(35d)=35
Int(-35d)=-35
UInt(35u)=35
UInt(-35u)=4294967261
UInt(-35d)=-35
SInt(-35u)=4294967261
Run Code Online (Sandbox Code Playgroud)
我将值声明为有符号整数还是无符号整数真的很重要吗?因为,C实际上只关心我如何从内存中读取值。请帮助我理解这一点,我希望你证明我错了。
我正在使用 R 中预安装的 RScript 包。
我想从命令提示符调用以下名为“test.R”的 R 脚本:
a <- c("a", "b", "c")
a
args <- commandArgs(TRUE)
b <- as.vector(args[1])
b
Run Code Online (Sandbox Code Playgroud)
我使用以下命令:
RScript test.R c("d","e","f")
Run Code Online (Sandbox Code Playgroud)
这将创建以下输出:
[1] "a" "b" "c"
[1] "c(d,e,f)"
Run Code Online (Sandbox Code Playgroud)
如您所见,第一个(也是唯一的)参数被解释为字符串,然后转换为一维向量。如何将参数解释为向量?
旁注:当然,向量的项可以分为多个参数,但在我的最终项目中,将有多个向量参数。实现这样的事情是我最后的手段:
RScript test.R "d" "e" "f" END_OF_VECTOR_1 "g" "h" "i" END_OF_VECTOR_2 "j" "k" "l"
Run Code Online (Sandbox Code Playgroud) 这会是:
((0x10203040 >> 24) & 0xFF) == 0x10
Run Code Online (Sandbox Code Playgroud)
在little-endian和big-endian机器上总是正常的吗?
假设我有一个图像I和一条线h1。使用Matlab,我可以像这样画线(或线段)
h1 = plot( [l1 l1],[20 100], 'r');\nRun Code Online (Sandbox Code Playgroud)\n\n现在我想将图像旋转I角度为 45\xc2\xb0。所以我imrotate这样使用:
IR = imrotate(I,45);\nRun Code Online (Sandbox Code Playgroud)\n\n现在,我想旋转线,如何使用 Matlab 来做到这一点?
\n\n我找到了这个功能rotate。我正在尝试这个,但它不起作用!
rotate(h1,[1 1],45);\nRun Code Online (Sandbox Code Playgroud)\n 我有一个由n列组成的数据框,其中一个是food.food列可能的值是apple,tomato,cabbage,sausage,beer,vodka,potato.我想在我的data数据框中创建一个新列,如下所示:if food==apple或food==tomatoor food==potato,然后赋值vegetables,否则只data$food赋值.
所以,如果数据框是这样的:
ID ..(some other columns).. food
1 apple
2 sausage
3 tomato
4 cabbage
5 vodka
Run Code Online (Sandbox Code Playgroud)
那么结果应如下:
ID ..(some other columns).. food category
1 apple vegetable
2 sausage sausage
3 tomato vegetable
4 cabbage vegetable
5 vodka vodka
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在尝试重现本文中描述的 R 输出的简化版本。更一般地说,这与我尝试使用该stargazer()函数从对象生成 LaTex 表有关lmer。
在作者发布后,我加载了适当的库并lmer使用以下代码成功创建了两个对象:
library(lme4)
library(stargazer)
data(cake)
M1 <- lmer(angle ~ temp + (1 | replicate) + (1|recipe:replicate), cake, REML= FALSE)
M2 <- lmer(angle ~ factor(temperature) + (1 | replicate) + (1|recipe:replicate), cake, REML= FALSE)
Run Code Online (Sandbox Code Playgroud)
当我尝试以下代码时,它返回以下错误:
stargazer(M1, M2, style="ajps",
title="An Illustrative Model Using Cake Data",
dep.var.labels.include = FALSE,
covariate.labels=c( "Temperature (Continuous)",
"Temperature (Factor $<$ 185)",
"Temperature (Factor $<$ 195)",
"Temperature (Factor $<$ 205)",
"Temperature (Factor $<$ 215)",
"Temperature (Factor $<$ 225)")) …Run Code Online (Sandbox Code Playgroud) 我在R中使用gsub将文本添加到字符串的中间.它工作得很好,但由于某种原因,当位置太长时,它会抛出错误.代码如下:
gsub(paste0('^(.{', as.integer(loc[1])-1, '})(.+)$'), new_cols, sql)
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)Error in gsub(paste0("^(.{273})(.+)$"), new_cols, sql) : invalid regular expression '^(.{273})(.+)$', reason 'Invalid contents of {}'
当括号中的数字(在这种情况下为273)较小时,此代码可以正常工作,但当它很大时则不行.
这会产生错误:
sql <- "The cat with the bat went to town. He ate the fat mat and wouldn't stop til the sun came up. He was a fat cat that lived with a rat who owned many hats.The cat with the bat went to town. He ate the fat mat and wouldn't stop til the sun came up. …Run Code Online (Sandbox Code Playgroud) 我正在从 kafka 主题读取流数据,我想将其中的某些部分存储在 pandas 数据框中。
from confluent_kafka import Consumer, KafkaError
c = Consumer({
'bootstrap.servers': "###",
'group.id': '###',
'default.topic.config': {
'auto.offset.reset': 'latest' }
})
c.subscribe(['scorestore'])
while True:
msg = c.poll(1.0)
if msg is None:
continue
if msg.error():
if msg.error().code() == KafkaError._PARTITION_EOF:
continue
else:
print(msg.error())
break
print('Received message: {}'.format(msg.value().decode('utf-8')))
c.close()
Run Code Online (Sandbox Code Playgroud)
收到的消息是一个json
{
"messageHeader" : {
"messageId" : "4b604b33-7256-47b6-89d6-eb1d92a282e6",
"timestamp" : 152520000,
"sourceHost" : "test",
"sourceLocation" : "test",
"tags" : [ ],
"version" : "1.0"
},
"id_value" : {
"id" : "1234",
"value" …Run Code Online (Sandbox Code Playgroud) 我在使用可反应表的 r闪亮应用程序的串扰 filter_select() 函数中使用 NFL 体育场名称。然而,当我选择“M&T Bank Stadium”时,它显示为“M&[amp;]T Bank Stadium”(我添加了括号,以便您看到它的样子)。有没有办法让串扰过滤器选择显示“M&T 银行体育场”而不是“M&[amp;]T 银行体育场”?
我在下面做了一个快速 MRE
library(reactable)
library(tidyverse)
library(crosstalk)
library(shiny)
df <- tibble(points = c(10, 12, 14),
stadium = c("M&T Bank Stadium", "Wembley Stadium", "FirstBank Stadium"))
df_crosstalk <- SharedData$new(df)
df_react <-
reactable(df_crosstalk)
ui <- fluidPage(
titlePanel("Test Ampersand"),
fluidRow(
column(
4,
filter_select(
id = "stadium",
label = "Stadium",
sharedData = df_crosstalk,
group = ~`stadium`)
),
column(
8,
df_react
)
)
)
server <- function(input, output, session) {
output$table <- renderReactable({
df_react
})
} …Run Code Online (Sandbox Code Playgroud)