我使用unname
加上一些其它內置函數搶在字符串中的第二數字表示像這樣的時刻:řunname()示出了在結果從vapply返回沒有影響()
v = vapply(vec, function(x) {
as.numeric(unname(strsplit(x, ":")[[1]][1]))
}, 1)
的問題是,現在這個命名輸出返回:
19:22 13:30 13:30 17:00 19:20 17:00 14:15 17:00 13:30 19:15
19 13 13 17 19 17 14 17 13 19
我用這與肥胖型data.table
所以我想這樣做的效率,即不用跑unname
兩次。 爲什麼unname
以上不起作用? 下面是我試過到目前爲止做:
- 的
unname
交換順序和as.numeric
這裏是vec
樣子:
> vec
[1] "19:22" "13:30" "13:30" "17:00" "19:20" "17:00" "14:15" "17:00" "13:30" "19:15"
順便說一句,如果你總是想要前兩個字符,你可以使用'substring' –
@alexis_laz謝謝。不幸的是,0-9只使用1個字符而不是2,所以子串不能單獨工作。 – sunny
你也可以像'as.numeric(sapply(strsplit(vec,「:」,fixed = TRUE),「[[」,1L))''以避免使用'strsplit'和'as.numeric'你的'vapply'循環。 –