[英]sort data.frame by character name
我有一個像這樣的data.frame
:
DeviceName SessionLength
samsung SM-A500FU 6168
samsung SM-N9005 16199
iPad3,3 5447
Sony C6602 13838
Iriver tolino tab 7 13657
iPhone6,2 13434
samsung SAMSUNG-SGH-I317 13292
...
我需要對該表進行排序,以查看所有SessionLengths < 200
DeviceName
。 有任何想法嗎?
我們可以結合使用aggregate()
函數和max()
aggregate()
函數來為每個DeviceName
標識SessionLength
最大值,並將結果存儲在新的數據幀df2
:
df2 <- aggregate(SessionLength ~ . , df1, max)
然后,我們可以獲取此數據幀的子集,僅選擇SessionLength
值低於特定限制的那些設備。 在這里,我將限制設置為10000,因為在OP中提供了示例數據,限制為200將導致空向量:
> as.vector(with(df2, DeviceName[SessionLength < 10000]))
#[1] "iPad3,3" "samsung SM-A500FU"
結果僅包含SessionLength
值的所有條目都小於10000的設備名稱。
數據
df1 <-read.table(text=" DeviceName SessionLength
'samsung SM-A500FU' 6168
'samsung SM-N9005' 16199
'iPad3,3' 5447
'iPad3,3' 2345
'Sony C6602' 13838
'Iriver tolino tab 7' 13657
'iPhone6,2' 13434
'samsung SAMSUNG-SGH-I317' 13292", header=T)
請參考子集和訂購功能。
# Data Frame
my.df <- data.frame( name = c( "D", "E", "Z", "A", "R", "U", "B", "X" )
, qty = c( 100, 300, 500, 200, 30, 10, 40, 50 )
)
# Subset
my.200 <- subset( x = my.df
, subset = qty < 200
)
name qty
1 D 100
5 R 30
6 U 10
7 B 40
8 X 50
# Ordering
my.order <- order( x = my.200$name )
[1] 4 1 2 3 5
# Ordered Data Frame
my.200 <- my.200[ my.order, ]
name qty
7 B 40
1 D 100
5 R 30
6 U 10
8 X 50
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.