【问题标题】:conversion of dataframe into Matrix in R在R中将数据帧转换为矩阵
【发布时间】:2017-03-14 08:41:03
【问题描述】:

我试图将数据框转换为 realRatingMatrix。但为此,我首先将数据帧转换为矩阵,将矩阵转换为 realRatingMatrix。 数据帧 df 包含 475984 rows3 columns
Column1productIDcolumn2customer namescolumn3 包含 rating of the product相应的用户 后续步骤:
1.去除缺失值
2. 数据去重
3. 将dataframe转换成矩阵 4. 测试矩阵

library(recommenderlab)
sapply(df, function(x) sum(is.na(x)))
# 100 missing values in column2
df <- df[-which(is.na(df$col2) == TRUE), ]
sum(duplicated(df))
# 580 duplicates
df <- df[-which(duplicated(df) == TRUE), ]

# Converting the dataframe into realratingMatrix
df_matrix <- data.matrix(df)

# Testing matrix
str(df_matrix)
df1 <- as.data.frame(df_matrix)

将数据框转换为矩阵时,我收到以下警告消息:
警告消息: 在 data.matrix(beer_data) 中:强制引入的 NAs 现在,当我将创建的矩阵转换为数据框时,我的客户名称列(column2)只有 38 个条目,其余均为 NA。

有人可以建议一些方法来更正我的代码并获得所需的输出。

【问题讨论】:

  • 能否提供一些模拟或样本数据?

标签: r recommendation-engine


【解决方案1】:

在 R 中,矩阵只是一个向量,它在某些地方被分割成行和列。因此,所有元素必须属于同一类型。特别是,如果您有一个包含一列数字数据和一列字符数据的 data.frame,您将无法将其转换为矩阵。我不确定,但看起来 column2 可能是一个字符向量。

请注意,我对推荐实验室包一无所知。

一个例子:

df <- data.frame(col1 = c("A", "B"), col2 = 1:2, stringsAsFactors = F)

data.matrix(df)
#Warning message:
#In data.matrix(df) : NAs introduced by coercion

df
#     col1 col2
#[1,]   NA    1
#[2,]   NA    2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    相关资源
    最近更新 更多