小编Joh*_*vat的帖子

gcc禁用几行代码的所有警告

我有与Jonathon Reinhart在此描述的相同的问题: 在重新定义时暂时禁用gcc警告

那是因为我必须使用第三方库(仅限C),它会抛出大量的警告

Warning "__always_inline" redefined [enabled by default]    
Run Code Online (Sandbox Code Playgroud)

我想要的是这样的:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-W???"
  #include "someheader.h"
  #include "otherheader.h"
#pragma GCC diagnostic pop
Run Code Online (Sandbox Code Playgroud)

有没有办法通过gcc 禁用警告,默认情况下使用a 启用

#pragma GCC diagnostic ignored
Run Code Online (Sandbox Code Playgroud)

编辑: 这是导致警告的块(文件:compiler.h):

#if defined(__CC_ARM)
#   define __always_inline   __forceinline
#elif (defined __GNUC__)
#   define __always_inline   inline __attribute__((__always_inline__))
#elif (defined __ICCARM__)
#   define __always_inline   _Pragma("inline=forced")
#endif
Run Code Online (Sandbox Code Playgroud)

c gcc

9
推荐指数
1
解决办法
894
查看次数

用par(new = TRUE)覆盖两个geom_bar,如两个条形图

我目前有一个类似于此的情节:

sourceTable<-"dateValues;total;inHospital
2014-01-01; 80; 20
2014-01-02; 90; 15
2014-01-03; 98; 16
2014-01-04; 98; 17
2014-01-05; 100; 28
2014-01-06; 110; 28
2014-01-07; 122; 30
2014-01-08; 110; 25
2014-01-09; 100; 22
2014-01-00; 90; 20
2014-01-11; 90; 15
2014-01-12; 80; 13
2014-01-13; 82; 10"

timetable<-read.table(textConnection(sourceTable), sep=";", head=T, dec=",")
barplot(timetable$total, border="red", axes=FALSE, ylim=c(0, max(timetable$total)))
par(new=TRUE)
barplot(timetable$inHospital, border="blue", axes=FALSE, ylim=c(0, max(timetable$total)))
Run Code Online (Sandbox Code Playgroud)

这给了我这个情节:

两个重叠的条形图

有没有办法用ggplot和geom_bar这样做:

library(ggplot2)
ggplot(timetable, aes(x=dateValues, y=total))
  +geom_bar(stat="identity", fill="red", colour="red")
Run Code Online (Sandbox Code Playgroud)

如何在第一个ggplot上覆盖第二个ggplot,即:

ggplot(timetable, aes(x=dateValues, y=inHospital))
  +geom_bar(stat="identity", fill="red", colour="blue")
Run Code Online (Sandbox Code Playgroud)

r ggplot2

8
推荐指数
1
解决办法
6282
查看次数

AVFoundation:从mov文件中读取RAW单帧(v210,未压缩的10位4:2:2)

为了从未压缩的v210(像素格式为kCVPixelFormatType_422YpCbCr10)中提取RAW图像缓冲区,我尝试按照这个伟大的帖子: 通过AVAssetReader读取样本

问题是,当涉及到startReading我的assetReader我得到了一个AVAssetReaderStatusFailed(与设定的NSMutableDictionary对象kCVPixelBufferPixelFormatTypeKey的输出设置kCVPixelFormatType_422YpCbCr10).如果我将outputSettings保留为nil,则会解析每个帧,但CMSampleBufferRef缓冲区为空.

我尝试了很多像素格式,比如

  • kCVPixelFormatType_422YpCbCr10
  • kCVPixelFormatType_422YpCbCr8
  • kCVPixelFormatType_422YpCbCr16
  • kCVPixelFormatType_422YpCbCr8_yuvs
  • kCVPixelFormatType_422YpCbCr8FullRange
  • kCVPixelFormatType_422YpCbCr_4A_8BiPlanar

但它们都不起作用.

我究竟做错了什么?

欢迎任何评论......

这是我的代码:

/* construct an AVAssetReader based on an file based URL */
NSError *error=[[NSError alloc]init];
NSString *filePathString=[[NSString alloc]
                          initWithString:@"/Users/johann/Raw12bit.mov"];

NSURL *movieUrl=[[NSURL alloc] initFileURLWithPath:filePathString];
AVURLAsset *movieAsset=[[AVURLAsset alloc] initWithURL:movieUrl options:nil]; 

/* determine image dimensions of images stored in movie asset */
CGSize size=[movieAsset naturalSize];  
NSLog(@"movie asset natual size: size.width=%f size.height=%f", 
      size.width, size.height);

/* allocate assetReader */
AVAssetReader *assetReader=[[AVAssetReader alloc] initWithAsset:movieAsset
                                                          error:&error]; …
Run Code Online (Sandbox Code Playgroud)

objective-c avfoundation

5
推荐指数
1
解决办法
2986
查看次数

Kaplan-Meier包括生存和移植数据

我所拥有的是使用R进行机械性心脏支持的患者的Kaplan-Meier分析.

我需要的是将以下数据添加到图中(如示例中所示):

  • 因心脏移植而幸存的患者(HTX)
  • 死亡的病人

换句话说,有两组,其中一组是另一组(所有患者)的子集(移植患者).这两条曲线必须从0/0开始并且会增加.

我自己的情节是通过:

pump <- read.table(file=datafile, header=FALSE,
                   col.names=c('TIME', 'CENSUS', 'DEVICE'))
# convert days to months
pump$TIME <- pump$TIME/(730/24)
mfit.overall <- survfit(Surv(TIME, CENSUS==0) ~ 1, data=pump)
plot(mfit.overall, xlab="months on device", ylab="cum. survival", xaxt="n")
axis(1, at=seq(from=0, to=24, by=6), las=0)
Run Code Online (Sandbox Code Playgroud)

我该如何添加另外两条曲线?

亲切的问候约翰

样本Kaplan Meier曲线:http://i.stack.imgur.com/158e8.jpg

演示数据:

生存数据,进入泵:

TIME    CENSUS  DEVICE
426     1       1
349     1       1
558     1       1
402     1       1
12      0       1
84      0       1
308     1       1
174     1       1
315     1       1
734 …
Run Code Online (Sandbox Code Playgroud)

r survival-analysis

5
推荐指数
2
解决办法
1323
查看次数

从数据框计算每年的天数

我有一个类似于这样的数据框:

df<-read.csv(text="id;census;startDate;endDate
ZF001;died;16.10.2012;16.05.2015
ZF002;alive;20.10.2013
ZF003;alive;04.11.2013;
ZF004;died;11.11.2013;20.12.2014
ZF005;died;25.11.2013;16.06.2015
ZF006;alive;25.11.2014;
ZF007;survived;02.12.2014;19.01.2015
ZF008;alive;11.12.2014;
ZF009;survived;28.01.2015;12.03.2015", sep=";")

df$startDate<-as.Date(df$startDate, "%d.%m.%Y")
df$endDate<-as.Date(df$endDate, "%d.%m.%Y")
Run Code Online (Sandbox Code Playgroud)

我需要的是以下内容:一个新的数据框,其中包含先证者每年有多少天参与研究.它看起来应该类似于:

id     year days
ZF001  2012   77
ZF001  2013  365
ZF001  2014  365
ZF001  2015  135
etc.
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
113
查看次数

将数据框的新列分配给与其他数据框匹配的值

我有两个数据框:

geodata<-read.csv(text='postalcode;latitude;longitude
7000;47.8415;16.5041
7000;47.8921;16.4011
7000;47.9400;16.5032
7071;47.8012;16.671
2443;47.9156;16.5179', sep=';', header=TRUE)

addresses<-read.csv(text='postalcode;address
2400;Lorem ipsum
7000;Dolor sit amet
2443;Consetetur sadipscing elitr
7000;Sed diam nonumy', sep=';', header=TRUE)
Run Code Online (Sandbox Code Playgroud)

我需要的是地址数据框中的两个附加列与相应的(当存在多个邮政编码行时的第一个匹配)geodata $ latitudegeodata $ longitude值.

如何加入(合并)数据框(内部,外部,左侧,右侧)?显示我正在寻找的几乎所有,除了我不想在合并的数据帧中重复行.

我试过类似的东西

# code not working... #
addresses$latitude<-geodata[addresses$postalcode==geodata$postalcode]
Run Code Online (Sandbox Code Playgroud)

我知道这真的很丑:-(

r

4
推荐指数
1
解决办法
309
查看次数

重新排序data.frame并重写rownames?

我有一个像这样的data.frame:

id<-c("001-020", "001-010", "001-051")
name<-c("Fred", "Sue", "Liam")
df<-data.frame(id, name)
Run Code Online (Sandbox Code Playgroud)

我试过了:

df[with(df, order(id)), ]
#        id name
# 2 001-010  Sue
# 1 001-020 Fred
# 3 001-051 Liam
Run Code Online (Sandbox Code Playgroud)

它正确地对data.frame进行排序,但是没有触及rownames.

我如何使用id字段的升序重新排序data.frame并一次性重写rownames ?

r

3
推荐指数
1
解决办法
1269
查看次数

std :: chrono:将时钟的纪元设置为1/1/0000

是否可以手动将纪元日期/时间设置为0000年1月1日,因此我可以使用std :: chrono :: time_point :: time_since_epoch来计算给定日期与1月1日0000之间的差异?

我尝试了以下方法:

#include <iostream>
#include <chrono>
#include <ctime>

int main(int argc, char*argv[])
{
    std::tm epochStart = {};
    epochStart.tm_sec = 0;
    epochStart.tm_min = 0;
    epochStart.tm_hour = 0;
    epochStart.tm_mday = 0;
    epochStart.tm_mon = 0;
    epochStart.tm_year = -1900;
    epochStart.tm_wday = 0;
    epochStart.tm_yday = 0;
    epochStart.tm_isdst = -1;

    std::time_t base = std::mktime(&epochStart);

    std::chrono::system_clock::time_point baseTp=
        std::chrono::system_clock::from_time_t(base);
    std::time_t btp = std::chrono::system_clock::to_time_t(baseTp);
    std::cout << "time: " << std::ctime(&btp);

}
Run Code Online (Sandbox Code Playgroud)

但这给了我

time: Thu Jan  1 00:59:59 1970
Run Code Online (Sandbox Code Playgroud)

c++ epoch c++11 c++-chrono

2
推荐指数
1
解决办法
2187
查看次数

geom_bar根据数据框中的列着色条

我有一个像这样的数据帧(freqOvertimeHourlyData):

     HOURS INTERVAL BARCOLOR
1     147    16-17  "green"
2     150    17-18  "green"
3     144    18-19  "blue"
4     149    19-20  "red"
5     139    20-21  "red"
6     101    21-22  "red"
Run Code Online (Sandbox Code Playgroud)

有没有办法geom_bar根据BARCOLOR栏中的值为条形着色?我目前的情节是这样的:

ggplot(freqOvertimeHourlyData, aes(x=INTERVAL, y=HOURS))+
geom_histogram(stat="identity")+
theme(legend.position="none")
Run Code Online (Sandbox Code Playgroud)

r ggplot2

2
推荐指数
1
解决办法
892
查看次数

将二进制文件读入std :: vector <uint16_t>而不是std :: vector <char>

我想读取包含uint16_t值的二进制文件.到目前为止我所做的是:

std::ifstream is;
std::vector<char> rawfilebuffer; /* should be std::vector<uint16_t> */

is.open("uint16_t_file.raw", std::ios::binary);
is.seekg(0, std::ios::end);
size_t filesize=is.tellg();
is.seekg(0, std::ios::beg);

rawfilebuffer.reserve(filesize);
rawfilebuffer.assign(std::istreambuf_iterator<char>(is),
                     std::istreambuf_iterator<char>());
Run Code Online (Sandbox Code Playgroud)

使用std::istreambuf_iterator<char>不起作用(error: no matching conversion for functional-style cast from 'std::ifstream').

是否可以将istreambuf_iterator转换为uint16_t

c++ c++11

2
推荐指数
1
解决办法
2568
查看次数

标签 统计

r ×6

c++ ×2

c++11 ×2

ggplot2 ×2

avfoundation ×1

c ×1

c++-chrono ×1

epoch ×1

gcc ×1

objective-c ×1

survival-analysis ×1