我一直在研究R中{tm}包的许多在线示例,试图创建一个TermDocumentMatrix.创建和清理语料库非常简单,但是当我尝试创建矩阵时,我一直遇到错误.错误是:
UseMethod("meta",x)中的错误:"meta"没有适用于类"character"对象的适用方法此外:警告消息:在mclapply(unname(content(x)),termFreq,control):all计划的核心在用户代码中遇到错误
例如,这里是Jon Starkweather的文本挖掘示例中的代码.为这么长的代码提前道歉,但这确实产生了一个可重复的例子.请注意,错误在{tdm}函数结束时出现.
#Read in data
policy.HTML.page <- readLines("http://policy.unt.edu/policy/3-5")
#Obtain text and remove mark-up
policy.HTML.page[186:202]
id.1 <- 3 + which(policy.HTML.page == " TOTAL UNIVERSITY </div>")
id.2 <- id.1 + 5
text.data <- policy.HTML.page[id.1:id.2]
td.1 <- gsub(pattern = "<p>", replacement = "", x = text.data,
ignore.case = TRUE, perl = FALSE, fixed = FALSE, useBytes = FALSE)
td.2 <- gsub(pattern = "</p>", replacement = "", x = td.1, ignore.case = TRUE,
perl = FALSE, fixed = FALSE, useBytes …Run Code Online (Sandbox Code Playgroud) 以下是circlize包中用于创建和弦图的一些代码.现在标签与圆的边缘平行.是否可以将标签旋转90度,使其垂直于圆圈?
library(circlize)
set.seed(999)
mat = matrix(sample(18, 18), 3, 6)
rownames(mat) = paste0("Start", 1:3)
colnames(mat) = paste0("End", 1:6)
chordDiagrm(mat)
Run Code Online (Sandbox Code Playgroud)
在下图中,我手动插入了几个标签,以显示我希望完成的任务(End5,End6,End7).谢谢.
我是新手,并且无法找到关于如何命名迹线的相关文档,因此在渲染的图中会出现一个有意义的标签ggplotly.这是ggplotly网站,其中显示了许多示例.在悬停时显示有意义的标签需要什么,而不是跟踪trace0,trace1等的值.
例如,在第一个图中,标签如何显示,如下所示:
比例:价值
总账单:价值
理想情况下,我想直接在R中而不是通过Web界面执行此操作.提前致谢.
这里正则表达式的新手......
假设以下名称:
names <- c("Jackson, Michael", "Lennon, John", "Obama, Barack")
Run Code Online (Sandbox Code Playgroud)
我想拆分名称,以保留所有字符,包括名字的第一个字母.因此,结果看起来像这样:
Jackson, M
Lennon, J
Obama, B
Run Code Online (Sandbox Code Playgroud)
我知道这是一个简单的解决方案,但我仍然坚持指出似乎是一个合理的解决方案 - 即一个积极的前瞻性正则表达式.我根据逗号,空格和大写字母中的第一个字母指定匹配项.这就是我所拥有的,但显然是错的:
names.reduced <- gsub("(?=\\,\\s[A-Z]).*", "", names)
Run Code Online (Sandbox Code Playgroud) 我正在从 R 中的数据框列表中提取特定的行,并希望将这些行组装到一个新的数据框中。例如,我将使用虹膜数据:
data(iris)
a.iris <- split(iris, iris$Species)
b.iris <- lapply(a.iris, function(x) with(x, x[3,]))
Run Code Online (Sandbox Code Playgroud)
我希望将返回的结果lapply()安排到与原始数据帧(例如,names(iris))具有相同结构的单个数据帧中。我一直在查看 plyr 包,但找不到正确的代码来完成这项工作。任何帮助将不胜感激!
布赖恩
我正在为 RStudio编写Shiny 教程。我更新了我的 RStudio,如教程中所述。我的当前版本是 0.98.945。当我运行提供的示例时,如runExample("01_hello"),它会打开我的 Web 浏览器并显示所有 HTML 内容,但似乎并未处理 R 代码。
当我在创建我自己的应用程序的教程中继续进行时runApp("App-1"),我在网页上收到一条错误消息:错误:找不到函数“fluidPage”。经过一番侦查,我在另一个站点上发现了一个帖子,指出我需要从 GitHub 下载 Shiny 的开发者版本,在这里找到。我运行了该安装的代码片段——但仍然没有运气。任何建议将不胜感激!
我在所述相同的问题,这个帖子.也就是说,我正在检测到"No TeX"安装.我收到Yosemite-beta操作系统后,我确实重新安装了tex.我使用以下命令找到终端上tex的路径:
/usr -name pdflatex
Run Code Online (Sandbox Code Playgroud)
而且,我提出了以下路径.
/usr/local/texlive/2014/bin/universal-darwin/pdflatex
/usr/local/texlive/2014/bin/x86_64-darwin/pdflatex
Run Code Online (Sandbox Code Playgroud)
我想知道我应该使用哪条路径以及要构建的特定文件.我使用的帖子作为参考建议:
$ sudo -s "echo /usr/texbin > /etc/paths.d/TeX"
Run Code Online (Sandbox Code Playgroud)
我不擅长终端,所以我有点害怕在命令行做太多,除非我确切知道我在做什么.
提前致谢.
问候:我是dplyr的新手,并且在格式化输出时遇到了一些挑战.这是一个代码片段,它产生一些可重现的数据,melt用于将其变为我需要的形状.
set.seed(1234)
library(reshape2)
library(dplyr)
val <- c(0:1)
a <- sample(val, 99, replace=T)
b <- sample(val, 99, replace=T)
c <- sample(val, 99, replace=T)
d <- sample(val, 99, replace=T)
dat <- data.frame(a,b,c,d)
melt.dat <- melt(dat)
Run Code Online (Sandbox Code Playgroud)
现在,我可以执行所需的摘要:
SummaryTable <- melt.dat %>%
group_by(variable) %>%
summarise_each(funs(sum, sum/n()))
Run Code Online (Sandbox Code Playgroud)
这是我的输出:
variable sum *
1 a 50 50.50505
2 b 58 58.58586
3 c 46 46.46465
4 d 46 46.46465
Run Code Online (Sandbox Code Playgroud)
我的理想输出如下.我无法弄清楚如何在summarise_each或melt函数中指定我的列名,设置小数位并抑制行号.我已经花了很长时间才能做到这一点,似乎无法让其他人知道!
Letter Count Percent
a 50 50.5
b 58 58.6
c 46 …Run Code Online (Sandbox Code Playgroud) 我最近将R从2.15更新为3.1.自更新以来,我无法运行R-Studio.R(v3.1)运行得很好,独立于R-Studio.我也尝试卸载并重新安装R-Studio,但它无法打开.基于一些调查,问题似乎是R-Studio与旧的基础包有冲突.(我的操作系统是Mavericks.)
我发现了一个终端命令来运行以检查版本 - 这就是我得到的:
$ ls /Library/Frameworks/R.framework/Versions/ 2.15 3.1当前
好吧,我承认我不熟悉终端命令,所以我希望有人可以提供或指出我删除旧基础包的指示.或者,如果您认为R Studio的问题是别的,请告诉我!
谢谢,Brian
我正在清理基于文本的数据文件,但无法弄清楚为什么gsub("[[:punct:]]", "", X1)不匹配所有标点符号。不幸的是,我无法在这里复制这个问题,这让我认为这是一个字符编码问题——有问题的标点符号的外观与标准 ASCII 明显不同。
这是我读入文件后可以解决的问题,还是我必须在前端做些什么?例如,Hadley关于编码问题的帖子让我觉得我在读取文件时需要指定编码语句。但是,我正在从一个文件夹中读取一堆不同的 txt 文件,所以我不确定最佳解决方案。基本上,我只想保留所有字母 [A-Za-z] 并排除其他所有字母。(也就是说,gsub([^A-Za-z], "", X1)也不起作用!)
任何有关处理此问题的建议将不胜感激!
我不熟悉R中的文本处理,并坚持如何删除字符串中的前导空格.这是一些代码:
set.seed(1234)
b <- paste0(sample(c("bbb ", " bbb "), 10, replace = TRUE), rep("ccc ddd", 10))
print(b)
[1] "bbb ccc ddd" " bbb ccc ddd" " bbb ccc ddd" " bbb ccc ddd" " bbb ccc ddd"
[6] " bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd" " bbb ccc ddd" " bbb ccc ddd"
Run Code Online (Sandbox Code Playgroud)
我发现我可以删除尾随空白sub(' +$', '', b)但是将其更改为sub ('$+ ', '', b)不会删除前导空格.猜猜这是一个快速解决方案......
我正在将非结构化数据转换为长格式,需要创建一个ID(分组)变量.我想根据另一个变量中包含的值集来分配ID变量.更具体地说,请考虑以下数据集.
set.seed(1234); x.1 <- rep(letters[1:5], 10)
x.2 <- sample(c(0:10), 50, replace=TRUE)
x.3 <- rep(NA, 50); df <- data.frame(x.1, x.2, x.3)
df <- df[-c(2, 19),]
Run Code Online (Sandbox Code Playgroud)
可以从x.1变量中识别出一个独特的案例 - 它以...开头a并以其结尾e.情况总是如此.x.3将保存ID(分组)变量.
> head(df, 9)
x.1 x.2 x.3
a 1 NA
c 6 NA
d 6 NA
e 9 NA
a 7 NA
b 0 NA
c 2 NA
d 7 NA
e 5 NA
Run Code Online (Sandbox Code Playgroud)
给定案例之间a和之间的记录数量e可能有很大差异(在实际数据文件中).因此,我不能通过简单地将变量除以固定数量的记录来分配唯一ID.我想出了如何使用for循环进行正确的赋值:
START <- which(df$x.1== "a")
END <- which(df$x.1 == "e")
for(i in …Run Code Online (Sandbox Code Playgroud)