分组条形图的频率数据框

时间:2017-12-09 18:20:20

标签: r

我正在尝试使用ggplot2创建一个分组条形图(但可能是其他包)。我意识到还有其他一些与此类似的帖子,但是我找不到任何可以回答我具体问题的帖子,所以,如果它看起来多余,我会道歉。搜索其他问题和答案我产生了以下代码:

### To remove unwanted rows from the larger data set###

NestPatch=NestPatch[,c(3,34)]

### Reshape data frame ####

dfm <- melt(NestPatch[,c("VOR2Binned", "Factor")],id.vars = 1)

我想在X轴上有VOR2Binned,在Y上有频率,VOR2Binned按因子变量(0或1)分组,我想将其重命名为Used和Random。

以下是我的示例数据:

Factor VOR2Binned   

0   3
1   3
0   3
1   3
0   2
1   2
1   3
0   2
1   3
0   2
0   3
1   3
0   3
1   3
0   3
1   3
1   2
0   3
0   0

我使用上面的代码得到了以下有序数据框。

VOR2Binned   variable   value

0   Factor  0
0   Factor  0
0   Factor  0
0   Factor  0
0   Factor  0
2   Factor  1
2   Factor  0
2   Factor  0
2   Factor  0
2   Factor  1
2   Factor  0
2   Factor  0
2   Factor  0
2   Factor  0
2   Factor  0
2   Factor  0
3   Factor  0
3   Factor  1
3   Factor  1

如果我继续

    #### Plot ####
   ggplot(dfm,aes(x = VOR2Binned,y = variable)) + 
  geom_bar(aes(fill = value),stat = "identity",position = "dodge") + 
  scale_y_log10()

我得到&#34; eval中的错误(expr,envir,enclos):object&#39; Factor&#39;找不到&#34;。

我想我错过了开发每个VOR2Binned课程频率的步骤。

2 个答案:

答案 0 :(得分:0)

好的,当然,经过几个小时的工作,我发现了一个替代方法,在发布问题后的那一刻。

dfm <- melt(NestPatch[,c("VOR2Binned", "Factor")],id.vars = 3)
dfm <-with(NestPatch, table(VOR2Binned, Factor)) 
tbl <- with(NestPatch, table(Factor, VOR2Binned)); barplot(tbl, beside = TRUE, legend = TRUE) 

Used Available Plot

我错过了构建数据表的步骤。

现在可以将数据可视化,但我仍然想知道如何使用ggplot,如果有人可以提供帮助的话。此外,如果有人知道如何将图例从当前因子代码1和0修改为使用和可用,将非常感激。提前谢谢。

答案 1 :(得分:0)

如果你不介意使用data.table ......

public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
    Uri selectedImageUri = data.getData();
    String picturePath = getPath(getActivity().getApplicationContext(), selectedImageUri );
    File file = new File(picturePath);
    Date fileDate = new Date(file.lastModifiedDate());
    int timestamp = Math.round(fileDate.getTime()/1000);
   }
}

public static String getPath(Context context, Uri uri) {
    String result = null;
    String[] proj = { MediaStore.Images.Media.DATA };
    Cursor cursor = context.getContentResolver().query(uri, proj, null, null, null);
    if(cursor != null){
    if ( cursor.moveToFirst() ) {
        int column_index = cursor.getColumnIndexOrThrow( proj[0] );
        result = cursor.getString( column_index );
        }
        cursor.close( );
    }
    if(result == null) {
        result = "Not found";
    }
        return result;
    }