目前正在分析气候数据,需要找到每个模型(列)达到净零排放的年份(行)。我做了一个循环来提取负值的第一个示例的 * 值 *,即每个型号的负发射(如照片所示,nz_temp行)。我现在需要创建一个包含此示例的 year 的行。任何帮助将不胜感激。我试着使用拉功能,但完全卡住了!
c9qzyr3d1#
不要把R看作是一个电子表格程序。当你使用R时,考虑列的方式是很重要的。几乎不需要为包含“答案”的任何内容创建新行。我的建议是创建一组包含负数True/False值的列。然后在它们上面使用下标。下面是一个小例子,一步一步:
> dput(my.data) structure(list(Year = c(2000, 2001, 2002), V1 = c(3, -4, -10), V2 = c(-500, -1000, -1200), V3 = c(1, 2, -3)), class = "data.frame", row.names = c(NA, -3L)) #> my.data # Year V1 V2 V3 # 2000 3 -500 1 # 2001 -4 -1000 2 # 2002 -10 -1200 -3 # are any values in V1, V2, or V3 less than 0? my.data$V1.neg.TF <- my.data$V1.neg.TF[my.data$V1.neg.TF][1] < 0 my.data$V2.neg.TF <- my.data$V2.neg.TF[my.data$V2.neg.TF][1] < 0 my.data$V3.neg.TF <- my.data$V3.neg.TF[my.data$V3.neg.TF][1] < 0 #> my.data # Year V1 V2 V3 V1.neg.TF V2.neg.TF V3.neg.TF #1 2000 3 -500 1 FALSE TRUE FALSE #2 2001 -4 -1000 2 TRUE TRUE FALSE #3 2002 -10 -1200 -3 TRUE TRUE TRUE
请注意True/False值如何指示负值首先出现的位置。现在我们使用下标:
my.data$Year[my.data$V1.neg.TF][1]
这意味着抓取Year(my.data$Year)的序列,其中有一个负数(my.data$V1.neg.TF),然后返回该向量的第一个元素([1])。所以你可以
my.data$Year
my.data$V1.neg.TF
[1]
c( my.data$Year[my.data$V1.neg.TF][1], my.data$Year[my.data$V2.neg.TF][1], my.data$Year[my.data$V3.neg.TF][1] )
这就是你想要的2001 2000 2002
2001 2000 2002
1条答案
按热度按时间c9qzyr3d1#
不要把R看作是一个电子表格程序。当你使用R时,考虑列的方式是很重要的。几乎不需要为包含“答案”的任何内容创建新行。
我的建议是创建一组包含负数True/False值的列。然后在它们上面使用下标。
下面是一个小例子,一步一步:
请注意True/False值如何指示负值首先出现的位置。
现在我们使用下标:
这意味着抓取Year(
my.data$Year
)的序列,其中有一个负数(my.data$V1.neg.TF
),然后返回该向量的第一个元素([1]
)。所以你可以
这就是你想要的
2001 2000 2002