我从以下数据中生成了堆积百分比条形图,该数据位于csv文件中,
,ONE,TWO,THREE
1,2432,420,18
2,276,405,56
3,119,189,110
4,90,163,140
5,206,280,200
6,1389,1080,1075
7,3983,3258,4878
8,7123,15828,28111
9,8608,48721,52576
10,9639,44725,55951
11,8323,45695,32166
12,2496,18254,26600
13,1524,8591,18583
14,7861,1857,1680
15,10269,5165,4618
16,13560,64636,63262
Run Code Online (Sandbox Code Playgroud)
使用以下代码
library(ggplot2)
library(reshape2)
library(scales)
data <- read.csv(file="file.csv",sep=",",header=TRUE)
data <- data[,2:ncol(data)]
datam <- melt(cbind(data,ind = sort(rownames(data))),is.var = c('ind'))
datam$ind <- as.numeric(datam$ind)
ggplot(datam,aes(x = variable, y = value,fill = factor(as.numeric(ind)))) +
geom_bar(position = "fill") + scale_y_continuous(labels =percent_format()) +
scale_fill_discrete("Barcode\nMatch") +xlab("Barcode")+ylab("Reads")
Run Code Online (Sandbox Code Playgroud)
结果是

问题是图例中的项目与它们所代表的堆栈的顺序不同.颜色和数字是正确的,但顺序不是.换句话说,有没有办法颠倒图例中项目的顺序?谢谢
PHP 有一个类似的问题,但我正在使用R,我无法将解决方案转换为我的问题.
我有10行50列的数据框,其中一些行完全相同.如果我在它上面使用unique,我会得到一行 - 比方说 - "type",但我真正想要的只是获得那些只出现一次的行.有谁知道我怎么能做到这一点?
我可以看看集群和热图来手动排序,但我有比上面提到的更大的数据帧(最多100行),这有点棘手.
我想有一个中缀操作%between%中R-检查,看是否x是下限之间l和上限u.
我创建了以下简单函数 - 但它不是中缀操作.
# between function - check to see if x is between l and u
is.between <- function(x, l, u) { x > l & x < u }
Run Code Online (Sandbox Code Playgroud)
我的目标是用以下代替: x %between% c(l, u)
是否可以定义新的中缀操作?如果是这样,那怎么做呢?
提前致谢
这是一个相当简单的问题.但我找不到每个google/stackexchange的答案,并查看magrittr的文档.如何提供通过%>%连接的函数链的结果来创建向量?
我看到大多数人做的是:
a <-
data.frame( x = c(1:3), y = (4:6)) %>%
sum()
Run Code Online (Sandbox Code Playgroud)
但是还有一个解决方案,我可以将结果管道链接到一个对象,也许是别名或类似的东西,有点像这样:
data.frame( x = c(1:3), y = (4:6)) %>%
sum() %>%
a <- ()
Run Code Online (Sandbox Code Playgroud)
这将有助于将所有代码保持在相同的逻辑中,将结果输送到"管道下方".
我想用ggplot制作条形图.绘制后,当我做export> copy to clipboard然后尝试调整我的绘图的大小时,条形之间的间隙随着我改变绘图的大小而改变(条形之间的间隙改变其位置).
我希望我对此很清楚.我使用了以下代码:
ggplot(df, aes(Day, Mean)) +
geom_histogram(stat = "identity", position = "stack") +
theme(axis.text = element_text(size=12, colour = 'black')) +
ylim(0, 50) + xlim(0, 365)
Run Code Online (Sandbox Code Playgroud)
我一直在使用这两种尝试geom_bar和geom_histogram,双方似乎给了同样的情节.当我调整大小时,条之间的间隙会发生变化.
PS我必须绘制365 bars,每一个代表一年中的一天.如果您认为我不清楚,请随意编辑问题.
这是用代码生成的图.您可以清楚地看到两者之间的不均匀间隙.
这是数据: 数据
编辑
数据
df <- data.frame(Mean=c(0,0,0,0,0,0,0.027272727,0,0.409090909,0.009090909,0,0,0,0,0,0.054545455,0.036363636,0.118181818,0.327272727,0.254545455,0,0,1.609090909,1.636363636,0,0.181818182,1.2,0.090909091,0.409090909,0.418181818,1.018181818,0.409090909,0.127272727,0.072727273,0.054545455,1.2,0.127272727,0.290909091,0,0.518181818,0.254545455,0.454545455,1.545454545,1.1,1.763636364,0,0.136363636,0.7,0.445454545,1.954545455,0.018181818,0,2.618181818,0,0,3.518181818,7.645454545,2.709090909,5.909090909,0.9,1.109090909,2.354545455,0.418181818,0.272727273,0,0,1.636363636,0,2.927272727,0.472727273,1,0,2.109090909,0.490909091,0.827272727,2.663636364,4.8,0.554545455,6.3,3.936363636,2.218181818,0.045454545,0,7.109090909,0,3.745454545,3.009090909,8.818181818,6,21.99090909,2.845454545,3.918181818,1.4,12.32727273,1.136363636,4.345454545,1.018181818,2.927272727,12.53636364,2.618181818,0.709090909,5.645454545,5.345454545,3.181818182,2.681818182,13.96363636,3.990909091,9.9,12.54545455,8.545454545,11.43636364,6.281818182,1.836363636,11.4,4.827272727,16.14545455,3.581818182,1.972727273,3.4,4.472727273,18.86363636,5,11.4,5.790909091,3.745454545,1.072727273,2.581818182,5.063636364,12.42727273,9.2,10.85454545,15.18181818,5.963636364,22.53636364,5.027272727,7,4.572727273,7.190909091,15.42727273,7.3,23.48181818,30.87272727,19.62727273,6.463636364,16.20909091,9.509090909,5.1,8.127272727,5.890909091,11.84545455,10.14545455,4.518181818,15.23636364,22.41818182,21.62727273,7.245454545,19.56363636,33.94545455,26.98181818,9.027272727,11.28181818,20.44545455,27.52727273,23.25454545,28.77272727,20.04545455,30.68181818,28.32727273,12.38181818,13.54545455,18.17272727,12.97272727,38.14545455,20.2,14.30909091,39.44545455,34.4,34.49090909,23.32727273,29.37272727,50.68181818,23.2,16.28,35.02,49,18.86,30.96,37.83,33.01,44.31,25.51,33.76,15.05,24.8,8.99,15.72,41.31,41.47,28.12,44.22,30.63,37.35,15.72,12.86,21.89,18.02,6.32,4.73,24.16,29.12,11.58,24.25,22.69,15.7,24.36,20.05,17.19,26.71,17.84,16.53,9.3,5.11,10.97,19.95,5.65,29.88,34.95,24.14,32.09,9.85,17.49,13.72,7.97,26.21,24.9,26.45,14.1,9.52,18.64,13.43,15.17,26.61,9.84,24.9,16.42,19.58,17.58,22.96,39.61,22.83,15.49,23.64,16.71,3.96,10.17,19.04,28.42,16.64,4.95,9.73,13.45,11.67,8.02,8.71,8.31,17.65,8.41,7.19,11.94,5.15,5.54,5.21,0.88,0.96,6.18,9.46,10.24,17.29,8.95,16.51,6.31,11.4,5.05,8.28,0.26,0,6.19,1.02,0.99,0.94,1.87,0,0.21,3.32,3.33,7.82,2.65,5.21,0.49,1.59,0.05,2.25,0,0,1.09,0.42,0,0.05,0.02,0,0.18,0,0.02,0.05,0.09,0.01,1.01,0,0,2.38,0.42,0.65,0,0,0,0.4,0,0,0,0,0.18,0,0,0,0,0,0.63,0,0,0,0.1,0,0,0,0,0,1.35,0,0,0,0,0,1.62,0.2,0,0,0,1.3,0,0,0,0,0.89,4.55,0), Day=seq(1, 365, 1))
Run Code Online (Sandbox Code Playgroud) 我试图使用以下代码计算每行的累积总和:
df <- data.frame(count=1:10)
for (loop in (1:nrow(df)))
{df[loop,"acc_sum"] <- sum(df[1:loop,"count"])}
Run Code Online (Sandbox Code Playgroud)
但我不喜欢这里的显式循环,我该如何修改呢?
找到包中所有相关函数的最佳方法是什么?我目前正在通过caTools包.如果我这样做?caTools或者??caTools我只是想要搜索那些被调用的函数而不是函数.有没有一种简单的方法来访问R gui中的所有功能?有没有什么好方法可以搜索功能?
我按照本教程https://developers.google.com/youtube/v3/code_samples/java#search_by_keyword
使用YouTubeData API根据关键字检索YouTube视频
本节给出了错误:
"Error:(117, 43) error: cannot find symbol variable auth"
youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() {
public void initialize(com.google.api.client.http.HttpRequest request) throws IOException {
}
})
.setApplicationName("youtube-cmdline-search-sample")
.build();
Run Code Online (Sandbox Code Playgroud)
我认为这个类没有被导入
import com.google.api.services.samples.youtube.cmdline.Auth;
Run Code Online (Sandbox Code Playgroud)
我在互联网上搜索了其他有此问题的人,但这个问题从来没有得到解答....有人可以帮助我吗?
我有一个我正在尝试制作的plot(),但我不希望将x值用作轴标签...我想要一个不同的字符向量,我想用作标签,在标准中方式:使用尽可能多的数量,丢弃其他数据等.我应该通过plot()来实现这一目标?
例如,考虑一下
d <- data.frame(x=1:5,y=10:15,x.names=c('a','b','c','d','e'))
Run Code Online (Sandbox Code Playgroud)
在barplot中,我会通过barplot(height=d$y,names.arg=d$x.names),但在这种情况下,实际的x值很重要.所以我想要一个类似的模拟plot(x=d$x,y=d$y,type='l',names.arg=d$x.names),但这不起作用.
我想重塑我的数据帧从长格式到宽格式,我放弃了一些我想保留的数据.对于以下示例:
df <- data.frame(Par1 = unlist(strsplit("AABBCCC","")),
Par2 = unlist(strsplit("DDEEFFF","")),
ParD = unlist(strsplit("foo,bar,baz,qux,bla,xyz,meh",",")),
Type = unlist(strsplit("pre,post,pre,post,pre,post,post",",")),
Val = c(10,20,30,40,50,60,70))
# Par1 Par2 ParD Type Val
# 1 A D foo pre 10
# 2 A D bar post 20
# 3 B E baz pre 30
# 4 B E qux post 40
# 5 C F bla pre 50
# 6 C F xyz post 60
# 7 C F meh post 70
dfw <- dcast(df,
formula = Par1 + …Run Code Online (Sandbox Code Playgroud)