创建数据框并填充它

时间:2014-01-11 01:26:58

标签: r

如何创建大小为[40 2]的固定大小的数据框,使用唯一字符串声明第一列,并使用特定值填充另一列?同样,我希望第一列成为字符串列表;我不 想要一排标题。

(有人请给我一些指示。我还没有在R中编程一段时间,我的R技能很糟糕 开头。)

4 个答案:

答案 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")