繁体   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