簡體   English   中英

向數據框添加特殊列名

[英]Adding special column names to dataframe

我有數據框(可以說是 df)。 我有因子 f。 我想將此因子插入到 p[1], p[2]..., p[k] 其中 k 是整數正數。 因此,它們中的每一個都將成為數據框 df 中的新列。 數據框中的列名將保留為 p[1]、p[2]...、p[k]。

如何通過循環將 f 插入 p[1]..p[k] 中? 以及如何將它們全部添加為 df (數據框)的新列? 在每個新列中保留它們的編號很重要。 這是 df 的示例:

> df
  var1 var2 var3
1   ac   bc   bc
2   bc   bc   cc
3   dc   ec   dc
4   gc   gc   gc

我有一個因素:

> f
[1] setosa     setosa     setosa   versicolor
Levels: setosa versicolor

如果 k = 2 我希望 df 為:

> df
  var1 var2 var3  p[1]        p[2]
1   ac   bc   bc  setosa     setosa
2   bc   bc   cc  setosa     setosa
3   dc   ec   dc  setosa     setosa
4   gc   gc   gc  versicolor versicolor

以下是您可以這樣做的方法:

for (i in 1:2) df[[sprintf("p[%i]", i)]] <- f
#  var1 var2 var3       p[1]       p[2]
#1   ac   bc   bc     setosa     setosa
#2   bc   bc   cc     setosa     setosa
#3   dc   ec   dc     setosa     setosa
#4   gc   gc   gc versicolor versicolor

當然,我想不出你需要這個的任何充分理由。 肯定有更好的方法來解決您的實際問題。

使用語法無效的名稱總是一個壞主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM