R 将数据帧划分为数字类别

R 将数据帧划分为数字类别,r,R,我有一个数据,其dput如下所示 数据: 数据是法文的,基本上是从0到10,从10到20的分类,以此类推。我需要用数字替换第二列,例如,0Ã10 cm我需要分配给1,10Ã20 cm-分配给2等等,我如何根据R中的类别用数字自动替换值 在新表中,我需要将第2列中的A替换为类别级别,第2列的值如下所示: 2 1 4 1 1 2 4 3 4 2 首先,您必须整理数据以清理结构。我在数据部分做的。然后将第一列转换为系数,然后再转换为数值,以获得类别级别,并将其分配给第二列 df[, 2] <-

我有一个数据,其dput如下所示

数据:

数据是法文的,基本上是从0到10,从10到20的分类,以此类推。我需要用数字替换第二列,例如,0Ã10 cm我需要分配给1,10Ã20 cm-分配给2等等,我如何根据R中的类别用数字自动替换值

在新表中,我需要将第2列中的A替换为类别级别,第2列的值如下所示:

2 1 4 1 1 2 4 3 4 2

首先,您必须整理数据以清理结构。我在数据部分做的。然后将第一列转换为系数,然后再转换为数值,以获得类别级别,并将其分配给第二列

df[, 2] <- as.numeric( factor( df[[1]]) )

#    X1 X2    X3
# 1  20  2 30 cm
# 2  10  1 20 cm
# 3  40  4 50 cm
# 4  10  1 20 cm
# 5  10  1 20 cm
# 6  20  2 30 cm
# 7  40  4 50 cm
# 8  30  3 40 cm
# 9  40  4 50 cm
# 10 20  2 30 cm
数据:

整理您的数据:


很难理解您的数据结构。请提供一个示例数据集。我需要根据文本分配数字,例如从0到10,它应该是1,从20到30-应该是2,所以onas.numericas.factor应该是这样。请查看。你的目标很明确。但是有一个问题,我们不知道你的数据是什么样子的-它是一个向量吗?数据帧?其他结构?这是什么课?是一列还是多列?我们可以看到Sathish假设你有4列,但你对答案的评论表明你只有1列。如果您遵循以下步骤,这些问题可以得到回答。这可能有效,还有一个问题-我如何将数据传播到0Ã10 cm到V1 V2 V3等等?谢谢您,Sathish!我现在就试试@L.Bond cut命令是执行此任务的正确命令,因此我删除了前两种方法。谢谢!但我仍然有一个问题-所有0Ã10 cm的值都在一列中,有没有办法进入不同的列?请使用此命令dputdata并将其输出发布到您的问题中。它将帮助人们理解您的数据结构。请参见Gregor对可复制示例的评论。
df[, 2] <- as.numeric( factor( df[[1]]) )

#    X1 X2    X3
# 1  20  2 30 cm
# 2  10  1 20 cm
# 3  40  4 50 cm
# 4  10  1 20 cm
# 5  10  1 20 cm
# 6  20  2 30 cm
# 7  40  4 50 cm
# 8  30  3 40 cm
# 9  40  4 50 cm
# 10 20  2 30 cm
df <- structure(c(12L, 2L, 14L, 2L, 2L, 12L, 14L, 13L, 14L, 12L),
                .Label = c("0 Ã  10 cm", "10 Ã  20 cm", "100 Ã  110 cm", "110 Ã  120 cm", "120 Ã  130 cm", 
                           "130 Ã  140 cm", "140 Ã  150 cm", "150 Ã  160 cm", "160 Ã  170 cm", 
                           "170 Ã  180 cm", "180 Ã  190 cm", "20 Ã  30 cm", "30 Ã  40 cm", 
                           "40 Ã  50 cm", "50 Ã  60 cm", "60 Ã  70 cm", "70 Ã  80 cm", "80 Ã  90 cm", 
                           "90 Ã  100 cm", "N/A"), class = "factor")
df <- as.character( df )  # convert factor to character
df <- data.frame( do.call('rbind', strsplit( df, "\ ") ), stringsAsFactors = FALSE )  # split string by spaces and row bind them together
df$X3 <- paste( df$X4, df$X5, sep = ' ')   # combine column 4 & 5 together and assign it to column 3
df[, c('X4', 'X5')] <- NULL  # remove column 4 and 5
df$X1 <- as.numeric( df$X1)  # convert column 1 to numeric
df                           # structure of data 
#    X1 X2    X3
# 1  20  Ã 30 cm
# 2  10  Ã 20 cm
# 3  40  Ã 50 cm
# 4  10  Ã 20 cm
# 5  10  Ã 20 cm
# 6  20  Ã 30 cm
# 7  40  Ã 50 cm
# 8  30  Ã 40 cm
# 9  40  Ã 50 cm
# 10 20  Ã 30 cm