如何对data.table中的每一行进行排序?

时间:2019-03-12 06:47:06

标签: r data.table

data.table对每一行中的值进行排序的方式是什么?我可以轻松地编写一个循环进行逐行排序的循环,但是我想这不是一种很聪明的处理方式。

示例:

让我们有一个data.table,例如:

df = data.table(ID = c('a', 'b', 'c', 'd', 'e', 'f'),
                v1 = c(1,2,1,3,4,5),
                v2 = c(2,3,6,1,0,2),
                v3 = c(0,0,1,2,3,5))

我可以使用for loop对此进行排序,如下所示:

for (i in 1:nrow(df))
{
  df[i, 2:4] = sort(df[i, 2:4], decreasing = T)
}

它给出了预期的结果:

   ID v1 v2 v3
1:  a  2  1  0
2:  b  3  2  0
3:  c  6  1  1
4:  d  3  2  1
5:  e  4  3  0
6:  f  5  5  2

但这似乎是做事很慢的方式。

1 个答案:

答案 0 :(得分:2)

您必须使用<Toolkit:DataGrid ItemsSource="{Binding People}" x:Name="DeptListView" SelectionMode="Multiple" DefaultOrderIndex="1" SelectedItem="{Binding SelectedPerson, Mode=TwoWay}" > <Toolkit:DataGrid.Columns> <Toolkit:DataGridTextColumn > <Toolkit:DataGridTextColumn.Header> <CheckBox Content="Select All" ></CheckBox> </Toolkit:DataGridTextColumn.Header> </Toolkit:DataGridTextColumn> <Toolkit:DataGridTextColumn Width="200" Header="CustID" Binding="{Binding CustID}"/> <Toolkit:DataGridTextColumn Width="200" Header="company name" Binding="{Binding name}"/> <Toolkit:DataGridTextColumn Width="200" Header="ContactName" Binding="{Binding ContactName}"/> <Toolkit:DataGridTextColumn Width="200" Header="Country" Binding="{Binding Country}"/> </Toolkit:DataGrid.Columns> </Toolkit:DataGrid> 吗?使用data.table方法的基数R apply呢?

MARGIN = 1