天道酬勤,学无止境

r

从 R 或 Nodejs 连接到 Analysis Services(Connecting to Analysis Services from R or Nodejs)

问题 我正在尝试通过 R 或 Nodejs 连接分析服务。 对于 R,我找到了以下库:https://github.com/overcoil/X4R 对于 Nodejs,我找到了以下库:https://github.com/rpbouman/xmla4js 分析服务服务器是外部的。 它不在我的本地机器中。 目前,我可以使用 Windows 和基本身份验证(用户名/密码)从 Excel 成功连接它。 为了通过 R 或 nodejs 访问它,在以下链接中说我需要使用 IIS 配置 http 访问。 但是由于它不是本地的,我如何才能获取文件 msmdpump.dll 并对其进行配置。 在此链接 https://www.linkedin.com/grp/post/77616-265568694 中,最后 Sarah Lukens 说我需要按照 https://msdn.microsoft.com/en-us/ 中提到的步骤进行操作图书馆/gg492140.aspx 由于之前没有在SSAS工作过,所以不太清楚。 任何人都可以指导我建立从 R 或 Nodejs 到分析服务的连接。 然后我只想提交 MDX 查询并获得结果。 谢谢,r karthik。 回答1 如果没有 IIS,似乎无法远程连接到您的 SSAS。 您必须共享 msmdpump.dll 才能通过 xmla 接口访问第三方 API 的

2021-09-21 19:26:40    分类:技术分享    r   node.js   ssas   OLAP   olap-cube

重采样未产生主成分分析的预期结果(Resampling not producing expected result of principal component analysis)

问题 我正在尝试使用带有替换的重采样(如引导程序)来生成主成分分析的置信区间。 我正在使用 iris 数据集的前 4 列: prcomp 函数产生以下输出: > mydf = iris[1:4] > print(prcomp(mydf)) Standard deviations: [1] 2.0562689 0.4926162 0.2796596 0.1543862 Rotation: PC1 PC2 PC3 PC4 Sepal.Length 0.36138659 -0.65658877 0.58202985 0.3154872 Sepal.Width -0.08452251 -0.73016143 -0.59791083 -0.3197231 Petal.Length 0.85667061 0.17337266 -0.07623608 -0.4798390 Petal.Width 0.35828920 0.07548102 -0.54583143 0.7536574 使用带替换的重采样: > times = 1000 > ll = list() > for(i in 1:times) { + tempdf = mydf[sample(nrow(mydf), replace = TRUE), ] + ll[[length(ll)+1]] = prcomp(tempdf)

2021-09-21 19:21:49    分类:技术分享    r   statistics-bootstrap

dplyr 在列的子集上,同时保留 data.frame 的其余部分(dplyr on subset of columns while keeping the rest of the data.frame)

问题 我正在尝试使用 dplyr 将函数应用于列的子集。 但是,与下面的代码相反,我试图在将所有列保留在数据框中的同时实现这一点。 目前,生成的数据框仅保留选定的列。 我可以使用 remove-and-cbind 构造将这些列合并回原始数据帧,但我想知道是否有办法直接在 dplyr 中执行此操作? 我试图将 select 函数移到 mutate 函数中,但还没有完成这项工作。 require(dplyr) Replace15=function(x){ifelse(x<1.5,1,x)} dg <- iris %>% dplyr::select(starts_with("Petal")) %>% mutate_each(funs(Replace15)) dg > dg Source: local data frame [150 x 2] Petal.Length Petal.Width 1 1.0 1 2 1.0 1 3 1.0 1 4 1.5 1 5 1.0 1 6 1.7 1 7 1.0 1 8 1.5 1 9 1.0 1 10 1.5 1 回答1 dg <- iris %>% mutate_each(funs(Replace15), matches("^Petal")) 或者(由@aosmith 发布)您可以使用starts_with 。 看一看

2021-09-21 19:14:36    分类:技术分享    r   dplyr

R 通过查找条件替换更多列(R conditional replace more columns by lookup)

问题 假设我们在数据帧df1和一个列subj中确实有很多数据列(名称为mycols ,还有一些在这种情况下不应处理的未命名列)和一个列subj ,它也是另一个数据帧df2的索引,其中列repl和subj (在这第二个数据帧是SUBJ唯一的)和其他很多nonimportant列(他们在这唯一的作用就是,我们不能假设有只有2列)。 我想以这种方式替换列的子集( df1[,mycols] ),如果有NA ( df1[,mycols][is.na(df1[,mycols])] )<- 替换为列的值DF2 $ REPL其中DF2的行具有DF2 $ SUBJ = DF1 $ SUBJ。 编辑:示例数据(我不知道将其写为数据帧分配的命令): mycols = c("a","b") df1: subj a b c 1 NA NA 1 1 2 3 5 2 0 NA 2 3 8 8 8 df2: subj repl notinterested 1 5 1000 2 6 0 3 40 10 result: df1-transformed-to: subj a b c 1 5 5 1 #the 2 fives appeared by lookup 1 2 3 5 2 0 6 2 #the 6 appeared 3 8 8 8 我想出了以下代码: df1[,mycols][is.na(df1[,mycols

2021-09-21 19:08:15    分类:技术分享    r   dataframe   lookup   na

R 中主成分载荷的置信区间(Confidence intervals of loadings in principal components in R)

问题 我正在使用以下代码使用 R 中的 prcomp 函数对 iris 数据集的前 4 列进行主成分分析: > prcomp(iris[1:4]) Standard deviations: [1] 2.0562689 0.4926162 0.2796596 0.1543862 Rotation: PC1 PC2 PC3 PC4 Sepal.Length 0.36138659 -0.65658877 0.58202985 0.3154872 Sepal.Width -0.08452251 -0.73016143 -0.59791083 -0.3197231 Petal.Length 0.85667061 0.17337266 -0.07623608 -0.4798390 Petal.Width 0.35828920 0.07548102 -0.54583143 0.7536574 如何在 R 中获得这些值的置信区间? 有没有可以做到的包? 谢谢你的帮助。 回答1 您可以在此使用引导程序。 只需使用引导程序包重新采样您的数据,并记录每次计算的主成分。 使用得到的经验分布来获得您的置信区间。 boot包使这很容易。 以下是计算第一个 PCA 组件相对于 Sepal.Length 的置信区间为 95% 的示例: library(boot) getPrcStat <- function

2021-09-21 19:07:45    分类:技术分享    r   pca   confidence-interval

在 R 中编码带引号的可打印电子邮件(Encode quoted-printable email in R)

问题 是否有使用 R 对电子邮件中的带引号的可打印文本进行编码的包或函数? 例如 Content-Type: text/plain; charset="windows-1251" Content-Transfer-Encoding: quoted-printable =CA=EE=EB=EB=E5=E3=E8! 我怎样才能得到字符串 ="Коллеги!" 在R? 回答1 base包中的Encoding应该可以完成这项工作。 例如: x <- "fa\xE7ile" Encoding(x) Encoding(x) <- "latin1" x 会返回: [1] "façile" 您来自电子邮件的文本只是一个字符串向量,因此您可以随意对其进行编码。

2021-09-21 19:07:37    分类:技术分享    r   email   encoding

合并行连接由逗号 R 编程分隔的列之一中的内容(merge rows concatenating the contents in one of the columns separated by comma-R programming)

问题 我需要帮助合并数据 (mydf) 中具有相同名称的行(即起始列)并连接“ALT”列中的内容,从而根据起始列中的相似值去除所有重复行。 我想合并行并连接由逗号分隔的“ALT”列中的内容,并获得如下所示的结果。 感谢您的帮助。 > mydf chr start end REF ALT TYPE refGene chr10 chr10:176131 176131 C A snp nonsynonymous SNV chr10 chr10:159149 159149 C G snp:17659149 nonsynonymous SNV chr10 chr10:159149 159149 C T snp:17659149 nonsynonymous SNV chr10 chr10:241469 241469 T C snp splicing > result chr start end REF ALT TYPE refGene chr10 chr10:176131 176131 C A snp nonsynonymous SNV chr10 chr10:159149 159149 C G,T snp:17659149 nonsynonymous SNV chr10 chr10:241469 241469 T C snp splicing DPUT 在这里: structure(list

2021-09-21 19:00:47    分类:技术分享    r

如何在R中绘制时间序列数据,根据因子数据改变背景?(How to plot time series data in R, changing background according to factor data?)

问题 假设我有一些看起来像这样的时间序列数据: df <- data.frame(Month=seq(1,12), Value = rnorm(12,0,1), Season = c('Winter', 'Winter', 'Spring', 'Spring', 'Spring', 'Summer', 'Summer', 'Summer', 'Fall', 'Fall', 'Fall', 'Winter')) 我想随时间绘制价值并展示它与季节的关系。 绘制值很容易,例如: ggplot(data, aes(Month, Value)) + geom_line() 在 ggplot 或基本图形中: plot(Value~Month, data=df, type='l') 我想做的是令人信服地叠加一个因素。 我想根据 x 轴上的月份更改背景颜色。 所以,在我的例子中,左边的 1/6 是,说冬天是白色,然后向右移动的下三分之一是春天的黄色,然后是夏天的下三分之一是红色,依此类推,直到最右边的 1/12 又是白色. 对于时间序列数据来说,这些似乎应该是简单易行的事情,但是在任何图形包中,我都找不到有关如何执行此操作的任何帮助。 任何建议或见解将不胜感激! 回答1 在基础 R 中,您可以执行以下操作: plot(Value~Month, type="n") rect(df$Month-0.5

2021-09-21 18:51:54    分类:技术分享    r   plot   ggplot2   time-series

使用 quanteda 进行 R 文本挖掘(R Text Mining with quanteda)

问题 我有一个数据集(Facebook 帖子)(通过 netvizz)并且我在 R 中使用了 quanteda 包。这是我的 R 代码。 # Load the relevant dictionary (relevant for analysis) liwcdict <- dictionary(file = "D:/LIWC2001_English.dic", format = "LIWC") # Read File # Facebooks posts could be generated by FB Netvizz # https://apps.facebook.com/netvizz # Load FB posts as .csv-file from .zip-file fbpost <- read.csv("D:/FB-com.csv", sep=";") # Define the relevant column(s) fb_test <-as.character(FB_com$comment_message) #one column with 2700 entries # Define as corpus fb_corp <-corpus(fb_test) class(fb_corp) # LIWC Application fb_liwc<-dfm(fb_corp

2021-09-21 18:41:21    分类:技术分享    r   text-mining   text-analysis   quanteda

如何使用 lapply() 获取列表中每个元素的名称?(How to get the name of each element of a list using lapply()?)

问题 想象一下,我有以下列表 > test <- list("a" = 1, "b" = 2) 列表的每个元素都有一个名称: > names(test) 现在,我想使用lapply()提取该名称,因为我想在一个将使用 lapply 调用的新函数中使用它。 我只是不知道如何提取每个元素的名称。 我试过使用deparse()和substitute()但结果很奇怪: > lapply(test, function(x) {deparse(substitute(x))}) $a [1] "X[[i]]" $b [1] "X[[i]]" 有没有人有线索? 精确 : 我想做这样的事情:我有一个类似于 test 的列表: > test <- list("a" = matrix(1, ncol = 3), "b" = matrix(2, ncol = 3)) 我想将一个函数应用于该列表,该函数转换每个元素内的数据并为每列指定一个特定名称: make_df <- function(x) { output <- data.frame(x) names(output) <- c("items", "type", NAME_OF_X) return(output) } lapply(test, make_df) 预期的输出是: > test $a [,1] [,2] [,3] [1,] 1 1 1

2021-09-21 18:37:17    分类:技术分享    r   lapply