2014-01-11 134 views
-4

如何創建大小爲[40 2]的固定大小數據框,用唯一字符串聲明第一列,然後用特定值填充另一列?再次,我想第一列是字符串列表;我不想 想要一排標題。創建數據框並填充它R

(有人請給我一些指點。我沒有計劃中的R了一段時間,我的[R技能是可怕的 開始。)

+1

你想在你的數據框中使用什麼字符串和值? – josliber

+0

爲什麼倒票? – Dombey

回答

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)

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 
+0

那麼,我不想填充右側。我只想要一個帶有第一列名稱的數據框。 – Dombey

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") 
+0

'sample(letters,40,replace = TRUE)'不會生成40個唯一的字符串。 – jlhoward

+0

我編輯了我的答案。謝謝 – marbel