我有制表符分隔文本,其中第1列显示汽车,第2列有相应的匹配。在下面的例子中,Car_1只有命中,而Car_3和Car_4分别有2和3次命中。它们如下:
>df
Car Hits
Car_1 omini|red|90%
Car_2
Car_3 Skoda|blue|97%
Audi|orange|96%
Ibiza|white|96%
Car_6 Honda|black|93%
BMW|blue|100%
我想分割第二列,以便将Car_3和Car_6的多个匹配排列在单个制表符分隔的行中,如下所示
>df
Car Hits
Car_1 omini|red|90%
Car_2
Car_3 Skoda|blue|97% Audi|orange|96% Ibiza|white|96%
Car_6 honda|black|93% BMW|blue|100%
我在R中尝试了以下代码,但它无法正常工作
>split(df,df$Hits)
任何人都可以帮助我获得所需的输出。
提前致谢
答案 0 :(得分:1)
示例数据:
for(i in 1:dim(df)[1]){ if(df$Hits[i] != "" && df$Cars[i] == ""){ df$Cars[i] = df$Cars[i-1]}}
required = aggregate(Hits ~ Cars, data = df, paste, collapse = " ")
p)的
<强>被修改 溶液强>:
ui->setupUi(this);
ui->lbl_image_istruction->setScaledContents(true);
ui->txt_instruction->setText( "Please load the image you want to analyze" );
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(ui->label_show);
ui->label_show->setScaledContents(true);
ui->scrollContent->setLayout(layout);
ui->label_show->installEventFilter(this);
答案 1 :(得分:1)
df <- data.frame(car=c("Car_1", "Car_2","Car_3","Car_3","Car_3","Car_6","Car_6"),
Hits=c("omini|red|90%", "", "Skoda|blue|97%", "Audi|orange|96%", "Ibiza|white|96%", "Honda|black|93%","BMW|blue|100% "))
> df
car Hits
1 Car_1 omini|red|90%
2 Car_2
3 Car_3 Skoda|blue|97%
4 Car_3 Audi|orange|96%
5 Car_3 Ibiza|white|96%
6 Car_6 Honda|black|93%
7 Car_6 BMW|blue|100%
> ddply(data.frame(df), .(car), summarise,Names=paste(Hits, collapse=" "))
car Names
1 Car_1 omini|red|90%
2 Car_2
3 Car_3 Skoda|blue|97% Audi|orange|96% Ibiza|white|96%
4 Car_6 Honda|black|93% BMW|blue|100%