![](/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.