R 是否将cut()的值拆分为其他列?
我在列上使用了cut()来存储数据。我有大约130行的结构(93.7,94.1)都在一列中。我想将这些值拆分为它们自己的列,但我很难做到这一点。以下是我到目前为止的代码:R 是否将cut()的值拆分为其他列?,r,R,我在列上使用了cut()来存储数据。我有大约130行的结构(93.7,94.1)都在一列中。我想将这些值拆分为它们自己的列,但我很难做到这一点。以下是我到目前为止的代码: binned=cut(df$value, 136) binned_df = data.frame(levels(binned)) 以下是binned_df的前10行: (42.9,43.4] (43.4,43.8] (43.8,44.2] (44.2,44.6]
binned=cut(df$value, 136)
binned_df = data.frame(levels(binned))
以下是binned_df的前10行:
(42.9,43.4]
(43.4,43.8]
(43.8,44.2]
(44.2,44.6]
(44.6,44.9]
(44.9,45.3]
(45.3,45.7]
(45.7,46.1]
(46.1,46.5]
(46.5,46.9]
有什么函数可以做到这一点吗?如果有任何帮助,我将不胜感激,因为我对R非常陌生。我们可以使用
read.csv
在删除(
和]
和gsub
后将列拆分为两列。它将使用sep
作为,
df1 <- read.csv(text = gsub("\\(|\\]", "", binned_df[[1]]), header = FALSE)
df1我们可以使用read.csv
在使用gsub
删除(
和]
后,将列拆分为两个。它将使用sep
作为,
df1 <- read.csv(text = gsub("\\(|\\]", "", binned_df[[1]]), header = FALSE)
df1xx所示示例的预期输出是什么?如果结构为(x,y],我希望所有的x都在它自己的列中,所有的y都在它们自己的列中。我找不到一种方法来做到这一点。如果你设置labels=FALSE
,你可以直接从提供给cut
的中断来构造它。所显示的示例的预期输出是什么?你需要read.csv(text=gsub)吗(“\\(\\],”,binned_df$col),header=FALSE)
@akrun如果结构是(x,y],我希望所有的x都在它自己的列中,所有的y都在它们自己的列中。我找不到一种方法来做到这一点。如果设置labels=FALSE
,或者read.table(text=sub(.“,”,bined_df[[1]]),sep=“,”,comment=“”,则可以直接从提供给cut的中断来构造它
或read.table(text=sub(“.”,”,binned_df[[1]]),sep=“,”,comment=“”)
x <- c("(42.9,43.4]", "(43.4,43.8]", "(43.8,44.2]")
limits <- do.call(rbind, #combine result in matrix
strsplit( #split by ,
substring(x, 2, nchar(x) - 1), #remove first and last char
",", fixed = TRUE))
mode(limits) <- "numeric" #change to numeric
limits
# [,1] [,2]
#[1,] 42.9 43.4
#[2,] 43.4 43.8
#[3,] 43.8 44.2