问题描述
我正在尝试在 .dbf 中的数据中创建一列。 我需要创建一个列,其中 70% 为 0(或 TRUE),30% 为 1(或 FALSE),只是随机的。
我该怎么做?
解决方法
如果你需要例如 100 个值,试试这个:
sample(c(0,1),size = 100,replace = TRUE,prob = c(0.7,0.3))
,
这种方式建立在@Leonardo 的回应之上
这种方式可以帮助您创建一个包含 2 列和一个标题的数据框。
- 一列包含您的数据
- 另一列包含 False 或 True,其中 False == 30%,True == 70%
首先创建数据框和列
df <- sample(c(0,0.3))
column_1 <- "Column 1"
将两者结合起来创建数据框
newdf <- data.frame("Column 1" = df)
最后,使用grepl
命令,我们可以填充一列,用False和True
newdf$presence <- ""
newdf$abesence <-"1"
newdf$presence[grepl('1',newdf$abesence)] <- ifelse(newdf$Column.1[grepl('1',newdf$abesence)] == 1,'False','True')
去掉不必要的列
newdf[3] <- NULL
检查 False 和 True 的频率
table(newdf$presence)
好了!这不是最优雅的方法,但它有效:)