引用row.names和colnames列表的矩阵元素

时间:2017-12-27 23:35:37

标签: r matrix dplyr vectorization apply

我有一个row.names,由两列组成,对应于数字矩阵的colnamesmyDF <- data.frame(curr1 = sample(row.names(euro.cross), 5), curr2 = sample(colnames(euro.cross), 5)) 。例如:

nrow(myDF)

我试图返回一个与euro.cross长度相同的向量,其中包含与myDF$curr1myDF$curr2中的值对应的myDF元素。这对于一个元素来说是微不足道的。例如,euro.cross[myDF$curr1[1], myDF$curr2[1]]中的第一行与值euro.cross[myDF$curr1, myDF$curr2]对应。但是,当我将向量传递给方括号时,返回一个矩阵(即length(myDF$curr1)返回一个矩阵,而不是myDF$rate <- euro.cross[myDF$curr1, myDF$curr2] 的向量。

如何对此操作进行矢量化,以便我可以执行以下操作:

<div *ngIf="userAppointment">
 <ion-card *ngFor="let appointment of userAppointment | async">
  <!-- <img [src]="appointment.brand.brandimage" alt="BrandImage"> -->
  <ion-card-content text-wrap>
      <ion-row>
          <ion-col text-left>
            <h2>{{appointment.products}}</h2>
            <p>{{appointment.price}}</p>
          </ion-col>
          <ion-col text-right>
            <h2>{{appointment.date}}</h2>
            <p>{{appointment.time}}</p>
          </ion-col>
        </ion-row>
  </ion-card-content>
 </ion-card>
</div>

显然,我可以执行一个循环,但我正在寻找一种更优雅的方式来编码它。到目前为止,Haven没有成功使用 apply 功能。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以将myDF转换为矩阵,并直接使用它从euro.cross中提取元素,通过字符矩阵触发索引(更多细节请参阅{{1 } 矩阵和数组 部分)并完成您所需的工作:

?'['