如何创建大小为[40 2]
的固定大小的数据框,使用唯一字符串声明第一列,并使用特定值填充另一列?同样,我希望第一列成为字符串列表;我不
想要一排标题。
(有人请给我一些指示。我还没有在R中编程一段时间,我的R技能很糟糕 开头。)
答案 0 :(得分:2)
两种方法:
# sequential strings
library(stringr)
df.1 <- data.frame(id=paste0("X",str_pad(1:40,2,"left","0")),value=NA)
head(df.1)
# id value
# 1 X01 NA
# 2 X02 NA
# 3 X03 NA
# 4 X04 NA
# 5 X05 NA
# 6 X06 NA
第二种方法:
# random strings
rstr <- function(n,k){
sapply(1:n,function(i){do.call(paste0,as.list(sample(letters,k,replace=T)))})
}
set.seed(1)
df.2 <- data.frame(id=rstr(40,5),value=NA)
head(df.2)
# id value
# 1 gjoxf NA
# 2 xyrqb NA
# 3 ferju NA
# 4 mszju NA
# 5 yfqdg NA
# 6 kajwi NA
函数rstr(n,k)
生成长度为n的向量,每个元素是长度为k的随机字符串。 rstr(...)
并不保证所有字符串都是唯一的,但重复的可能性为O(n/26^k)
。
答案 1 :(得分:1)
我发现这种在R中创建数据框的方法非常高效且简单, 创建一个原始值数组,然后转换为所需维度的矩阵,最后命名列和行
dataframe.values = c(value1, value2,.......)
dataframe = matrix(dataframe.values,nrow=number of rows ,byrow = T)
colnames(dataframe) = c("column1","column2",........)
row.names(dataframe) = c("row1", "row2",............)
答案 2 :(得分:0)
exampledf <- data.frame(columnofstrings=c("a string", "another", "yetanother"),
columnofvalues=c(2,3,5) )
给出
> exampledf
columnofstrings columnofvalues
1 a string 2
2 another 3
3 yetanother 5
答案 3 :(得分:0)
创建data.frame并使用值
定义它的列记录规则,重复字符串以匹配第二列
定义的40行df <- data.frame(x = c("unique_string 1", "unique_string 2"), y = rpois(40, 2))
# Change column names
names(df) <- c("string_col", "num_col")