![](/img/trans.png)
[英]create a new data frame with columns from another data frame based on column names in 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.