如何编辑";“行名称”;在R中拆分和剪切2后?
我想从row.names中编辑出一些信息,这些信息是在如何编辑";“行名称”;在R中拆分和剪切2后?,r,hmisc,R,Hmisc,我想从row.names中编辑出一些信息,这些信息是在split之后自动创建并使用的。请参阅以下代码: #Mock data date_time <- as.factor(c('8/24/07 17:30','8/24/07 18:00','8/24/07 18:30', '8/24/07 19:00','8/24/07 19:30','8/24/07 20:00', '8/24/07 20:3
split
之后自动创建并使用的。请参阅以下代码:
#Mock data
date_time <- as.factor(c('8/24/07 17:30','8/24/07 18:00','8/24/07 18:30',
'8/24/07 19:00','8/24/07 19:30','8/24/07 20:00',
'8/24/07 20:30','8/24/07 21:00','8/24/07 21:30',
'8/24/07 22:00','8/24/07 22:30','8/24/07 23:00',
'8/24/07 23:30','8/25/07 00:00','8/25/07 00:30'))
U. <- as.numeric(c('0.2355','0.2602','0.2039','0.2571','0.1419','0.0778','0.3557',
'0.3065','0.1559','0.0943','0.1519','0.1498','0.1574','0.1929'
,'0.1407'))
#Mock data frame
test_data <- data.frame(date_time,U.)
#To use cut2
library(Hmisc)
#Splitting the data into categories
sub_data <- split(test_data,cut2(test_data$U.,c(0,0.1,0.2)))
new_data <- do.call("rbind",sub_data)
test_data <- new_data
模拟数据
date\u time您可以使用正则表达式(Regex),如下所示:
rownames(test_data) = gsub(".*[]\\)]\\.", "", rownames(test_data))
如果您不熟悉正则表达式,那么它很神秘,但它基本上表示匹配任何字符序列(*
),这些字符后跟大括号或圆括号([]\\)]
),然后再加上句点(\.
)并删除所有字符
双反斜杠是“转义符”,表示双反斜杠后面的字符应按字面解释,而不是按其特殊的正则表达式含义(例如,
表示“匹配任何单个字符”,但\.
表示“这实际上只是一个句点”)。只是为了好玩,您还可以使用regmatches
> Names <- rownames(test_data)
> ( rownames(test_data) <- regmatches(Names, regexpr("[0-9]+$", Names)) )
[1] "6" "10" "5" "9" "11" "12" "13" "14" "15" "1" "2" "3" "4" "7" "8"
>名称(行名称(测试数据)您还可以将子数据的名称设置为NULL
names(sub_data) <- NULL
test_data <- do.call('rbind', sub_data)
row.names(test_data)
#[1] "6" "10" "5" "9" "11" "12" "13" "14" "15" "1" "2" "3" "4" "7" "8"
名称(子单元数据)