如何删除一个数字(长度为一位或两位数)以及每次在特定变量中的字符串末尾出现时直接位于其前面的点R?例:
z<-c("awe", "p.56.red.45", "ted.5", "you.88.tom")
Run Code Online (Sandbox Code Playgroud)
我只想删除.45和.5.
我正在创建一些直方图,我想在图的顶部添加注释.我正在使用for循环绘制这些,所以我需要一种方法将注释放在顶部,即使我的ylims从图形更改为图形.如果我可以在循环中存储每个图形的ylim,我可能会导致我的注释的y坐标根据当前图形而变化.我的注释中包含的y值必须在循环进行迭代时动态更改.下面是一些示例代码来演示我的问题(请注意注释如何移动.我需要根据每个图形的ylim进行更改):
library(ggplot2)
cuts <- levels(as.factor(diamonds$cut))
pdf(file = "Annotation Example.pdf", width = 11, height = 8,
family = "Helvetica", bg = "white")
for (i in 1:length(cuts)) {
by.cut<-subset(diamonds, diamonds$cut == cuts[[i]])
print(ggplot(by.cut, aes(price)) +
geom_histogram(fill = "steelblue", alpha = .55) +
annotate ("text", label = "My annotation goes at the top", x = 10000 ,hjust = 0, y = 220, color = "darkred"))
}
dev.off()
Run Code Online (Sandbox Code Playgroud) 我在gridExtra包中使用grid.table以表格格式显示调查注释列表.当comments(字符串变量)超过给定长度时,我希望它自动插入换行符"\n".
library(gridExtra)
df<-data.frame(comments = c("Here is a short string",
"Here is a long string that needs to be broken in half so that it doesn't run off the page",
"Here is another short string"))
grid.newpage()
print(grid.table(df$comments))
Run Code Online (Sandbox Code Playgroud)
如果此功能在其他地方可用,我愿意使用不同的表包.
我有一个数据框,其中包含两个字符串变量,字符数相同.这些字符串代表学生对某些考试的回答.第一个字符串包含正确回答的每个问题的+号和每个错误项的错误响应.第二个字符串包含所有正确的答案.我想用第二个字符串中的正确答案替换第一个字符串中的所有+符号.可以使用以下代码创建简化的启发式数据集:
df <- data.frame(v1 = c("+AA+B", "D++CC", "A+BAD"),
v2 = c("DBBAD", "BDCAD","CDCCA"), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)
因此,df$v1需要更换+符号,其中的字母df$v2与字符串的开头距离相同.有任何想法吗?
我在一个学区工作,并计划生成独特的 PDF 报告,我将这些报告发送到一个共享驱动器,其中包含我学区 40 多所学校中每所学校的文件夹。
我正在尝试在我的for循环中设置工作目录,以便每所学校都能获得为其学校量身定制的报告。学校文件是根据一些名为“school_name”的变量的级别命名的,现在我想根据我使用学校数据的事实写入这些文件夹[i]。
schools <- levels(as.factor(data$school_name))
for (i in 1:length(schools)) {
setwd("W:\\Data Analysis Results\\"paste(schools[[i]]))
## some command to create a unique PDF report for school [[i]]
}
Run Code Online (Sandbox Code Playgroud)