从字符向量随机获取时将所有值更改为字符的矩阵

问题描述 投票:0回答:1

我正在尝试为我的数据生成工作生成矩阵。给出当前代码

nb<-sample(1:6,3,replace = T)
bt<-c("S","M","L")
df<-matrix(0,3,3)
for(i in 1:nrow(df)){
  df[i,1]<-nb[i]
  df[i,2]<-as.numeric(sample(bt,1,replace = T))
}

但是问题是将所有值都更改为字符值如果我要更改bt<-c(1,2,3),因为所有值都是数字,所以可以正常工作。

有人可以帮我吗?我只需要将第2列设置为字符,而不影响其他列的值

r vector character
1个回答
0
投票

matrix只能保存一种数据。我们可以使用data.frame存储多个类别的数据。同样,我们在这里不需要for循环。您可以尝试:

df <- as.data.frame(matrix(0,3,3))
df[[1]] <- nb
df[[2]] <- sample(bt, nrow(df), replace = TRUE)

df
#  V1 V2 V3
#1  1  M  0
#2  5  M  0
#3  6  S  0

str(df)
#'data.frame':  3 obs. of  3 variables:
#$ V1: int  1 5 6
#$ V2: chr  "M" "M" "S"
#$ V3: num  0 0 0
© www.soinside.com 2019 - 2024. All rights reserved.