我使用该rbindlist()函数尝试合并两个融化的数据帧(means_melt和means_melt_50).我想知道它为什么会出现数据中断?我是否可以使用整个列表,因为我最终打算创建两个图表,每个图表有5组数据(按变量分组),并使用facet_grid().我希望这两个图表基于"准确度"分开.
> compiled_means <- list(means_melt, means_melt_50)
> rbindlist(compiled_means, use.names = TRUE, fill=FALSE, idcol = NULL)
Divisions Accuracy variable value
1: 1 0 mean20 16
2: 2 0 mean20 20
3: 3 0 mean20 21
4: 4 0 mean20 17
5: 5 0 mean20 20
---
196: 16 50 mean_2 2
197: 17 50 mean_2 2
198: 18 50 mean_2 2
199: 19 50 mean_2 4
200: 20 50 mean_2 3
Run Code Online (Sandbox Code Playgroud)
如果有人能够更有效地格式化数据,以便将其放入我想要的图表中,我很高兴听到建议.我不确定我正在服用的路线是否有效或啰嗦......
我有问题geom_bar在刻面时保持ggplot 图中的原始顺序.找到了一些在线帮助,但是当我试图解决时,它们没有用.
码:
df <- as.data.frame(cbind(x =rep(c("N-on", "N-off", "R-on", "R-off"),2),
y = c(13,6,7,11,20,16,17,19), z = c(rep("A", 4), rep("B", 4))))
ggplot(data=df, aes(x=x, y=y)) +
geom_bar(stat="identity") +
facet_wrap(~ z, ncol =1) +
coord_flip()
Run Code Online (Sandbox Code Playgroud)
预期输出:垂直轴上的标签将按原始顺序排列,例如, "N-on", "N-off", "R-on", "R-off".
我知道这个问题非常基础,但是我在添加额外的行以显示该行的摘要时遇到了麻烦。
假设我正在使用以下代码创建一个data.frame:
name <- c("James","Kyle","Chris","Mike")
nationality <- c("American","British","American","Japanese")
income <- c(5000,4000,4500,3000)
x <- data.frame(name,nationality,income)
Run Code Online (Sandbox Code Playgroud)
上面的代码创建下面的data.frame:
name nationality income
1 James American 5000
2 Kyle British 4000
3 Chris American 4500
4 Mike Japanese 3000
Run Code Online (Sandbox Code Playgroud)
我想做的是添加第5行,其中包含:name =“ total”,国籍=“ NA”,age =所有行的总数。我想要的输出如下所示:
name nationality income
1 James American 5000
2 Kyle British 4000
3 Chris American 4500
4 Mike Japanese 3000
5 Total NA 16500
Run Code Online (Sandbox Code Playgroud)
在实际情况下,我的data.frame具有一千多行,因此我需要一种有效的方法来添加总行。
可以请教一下吗?非常感谢你!
我只是习惯将行作为一个单位/记录,并且想知道为什么它是面向列的。或者,如果我误解了一点,请提出。
我以为数据帧是一系列的行,例如(臭氧,Solar.R,风,温度,月,日)。
> c ## data frame created from read.csv()
Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
7 23 299 8.6 65 5 7
8 19 99 13.8 59 5 8
> typeof(c)
[1] "list"
Run Code Online (Sandbox Code Playgroud)
但是,当对c应用lapply()以显示每个列表元素时,它是一列。
> lapply(c, function(arg){ return(arg) })
$Ozone
[1] 41 36 12 18 23 …Run Code Online (Sandbox Code Playgroud) 我有一个data.table,如下所示:
ID Date Team MonthFactor
1 2512 2015-04-24 Purple 2015-04
2 2512 2015-04-25 Purple 2015-04
3 2512 2015-04-26 Purple 2015-04
4 2512 2015-04-27 Purple 2015-04
Run Code Online (Sandbox Code Playgroud)
我想获得双方分组的行数Team和MonthFactor,包括当有没有从给定月份行,也就是说,如果紫队曾在五月中没有任何条目,但黄没有,汇总表将如下所示:
Team MonthFactor N
1 Purple 2015-04 10
2 Purple 2015-05 0
3 Yellow 2015-04 5
4 Yellow 2015-05 7
Run Code Online (Sandbox Code Playgroud)
如果我不需要"空"组,那么这样做是微不足道的,但是当我可能没有包含给定monthFactor的行时,我无法理解如何指定需要评估的组.
我写了以下代码来更改日期格式:
m <- as.Date("30-sep-15","%d-%b-%y")
l <- format(m,"%Y%m%d")
Run Code Online (Sandbox Code Playgroud)
结果:
l is 20150930
Run Code Online (Sandbox Code Playgroud)
现在,当我检查结果对象的类时,即l
class(l)
"character"
Run Code Online (Sandbox Code Playgroud)
类和模式更改为字符.我们可以保留此对象的Date类,而且还表现在以下格式此对象:20150930??
SampleTable:
ID Score1 Score2
1 100 88
1 96 94
1 94 95
2 100 100
2 98 94
3 77 88
Run Code Online (Sandbox Code Playgroud)
所以我希望返回值为2,因为有2个唯一的人有一个Score1> Score2的实例.
为了再现性:
df = data.frame( ID=c(1,1,1,2,2,3), Score1=c(100,96,94,100,98,77), Score2=c(88,94,95,100,94,88) )
ID Score1 S
Run Code Online (Sandbox Code Playgroud)
我刚在想
length( unique( which( df$Score1 > df$Score2 ) ) )
Run Code Online (Sandbox Code Playgroud)
然而,返回3,显然是因为它没有考虑寻找df$ID唯一的,只是唯一出现的数量.我如何解释想要独特的唯一数量df$ID?
根据 UDACITY 中的 android 应用程序开发免费课程,我一直在 Android Studio 中练习。无论哪里有 R.menu 或 R. 东西,它都无法解决
package com.example.android.courtcounter;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.R;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. …Run Code Online (Sandbox Code Playgroud) 我想根据列元素列表更改行顺序.以下是此类列表的示例:
scenChoice <- c("X2010", "SSP2-NoCC-REF", "SSP1-NoCC-REF", "SSP3-NoCC-REF", "SSP2-GFDL-REF", "SSP2-IPSL-REF", "SSP2-HGEM-REF")
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的数据表的输出:
scenario region_code value
SSP1-NoCC-REF lowInc 0.079897553
SSP2-GFDL-REF lowInc 0.119297969
SSP2-HGEM-REF lowInc 0.124730614
SSP2-IPSL-REF lowInc 0.121280208
SSP2-MIROC-REF lowInc 0.121459249
2010 lowInc 0.316646263
SSP2-NoCC-REF lowInc 0.115680977
SSP3-NoCC-REF lowInc 0.167769763
SSP1-NoCC-REF upMidInc 0.020520457
SSP2-GFDL-REF upMidInc 0.024871731
SSP2-HGEM-REF upMidInc 0.026223688
SSP2-IPSL-REF upMidInc 0.025594828
SSP2-MIROC-REF upMidInc 0.025523934
2010 upMidInc 0.063808085
SSP2-NoCC-REF upMidInc 0.023987357
SSP3-NoCC-REF upMidInc 0.027964746
SSP1-NoCC-REF highInc 0.014672749
SSP2-GFDL-REF highInc 0.015258928
SSP2-HGEM-REF highInc 0.016021142
SSP2-IPSL-REF highInc 0.015681295
SSP2-MIROC-REF highInc 0.015602455
2010 highInc 0.020245181 …Run Code Online (Sandbox Code Playgroud) 我有以下数据帧
one <- c('one',NA,NA,NA,NA,'two',NA,NA)
group1 <- c('A','A','A','A','B','B','B','B')
group2 <- c('C','C','C','D','E','E','F','F')
df = data.frame(one, group1,group2)
> df
one group1 group2
1 one A C
2 <NA> A C
3 <NA> A C
4 <NA> A D
5 <NA> B E
6 two B E
7 <NA> B F
8 <NA> B F
Run Code Online (Sandbox Code Playgroud)
我想获得的非缺失观测值的计数one的每个组合group1和group2.
在Pandas,我会用groupby(['group1','group2']).transform,但我怎么能在R?原始数据帧很大.
预期产出是:
> df
one group1 group2 count
1 one A C 1
2 <NA> A C 1
3 <NA> …Run Code Online (Sandbox Code Playgroud)