簡體   English   中英

從 R 數據框中的兩列創建新的向量列

[英]Create new column of vectors from two columns in R data frame

我有一個看起來像這樣的數據框,我希望創建一個新列,該列是一個包含 txStart 和 txEnd 的向量。 我嘗試了subsetDF <- unite(subsetDF, interval, c(txStart, txEnd), sep = ", ", remove=FALSE)但這返回一個字符,我希望輸出列是一個向量,以便以后我可以單獨訪問txStart 和 txEnd 的值。 我也試過subsetDF['interval'] <- apply(subsetDF[,c('txStart', 'txEnd')], 2, func)但是Error in FUN(X[[i]], ...) : argument "values" is missing, with no default 任何幫助,將不勝感激

在此處輸入圖片說明

您可能應該仔細考慮為什么要在兩個單獨的列中添加一個包含已有信息的列,因為這只會復制數據並使訪問這些數據變得更加困難。 假設您有充分的理由,您可以通過將interval設為具有 2 個值的向量列表來實現您想要的:

df <- data.frame(
  name = letters[1:5],
  txStart = c(100, 200, 300, 400, 500),
  txEnd = c(120, 220, 320, 420, 520)
)

df$interval <- lapply(1:nrow(df), function(i) c(df$txStart[i], df$txEnd[i]))

然后您的數據將如下所示:

> df
  name txStart txEnd interval
1    a     100   120 100, 120
2    b     200   220 200, 220
3    c     300   320 300, 320
4    d     400   420 400, 420
5    e     500   520 500, 520 

如果你想訪問第 4 行的txEnd ,你必須這樣做:

> df$interval[[4]][2]
[1] 420

請注意,您必須使用[[因為您首先要獲取列表的子集。

暫無
暫無

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

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