簡體   English   中英

在R中,如何根據第二列中的值從一列中選擇一個值?

[英]In R, how do I select a single value from one column, based upon a value in a second column?

感謝您的幫助。 我正在嘗試編寫一個公式,該公式使用從.csv文件中選擇的值。 看起來像這樣,我們稱之為df。

df<-read.csv("SiteTS.csv", header=TRUE,sep=",")
df

  Site        TS
1  H4A1 -42.75209
2  H4A2 -43.75101
3  H4A3 -41.75318
4  H4C3 -46.76770
5  N1C1 -42.68940
6  N1C2 -36.95200
7  N1C3 -43.16750
8  N2A2 -38.58040
9  S4C1 -35.32000
10 S4C2 -34.52420

我的方程式要求每個站點的TS列中的值。 我正在嘗試使用TS使用方程式的結果創建一個名為SigmaBS的新列。

df["SigmaBS"]<-10^(subset(df, Site=="H4A1"/10)

這是我遇到問題的地方,因為子集函數返回與Site列= H4A1相關的所有列

subset(df, Site =="H4A1")
Site        TS
1 2411 -42.75209

但同樣,我只需要值-42.75209。

如果這是一個簡單的問題,我深表歉意,但我非常感謝您可能提供的任何幫助。

如果您堅持使用子集函數,則它具有一個select參數:

subset(df, Site=="H4A1", select="TS")

更好的選擇是使用[]表示法:

df[df$Site=="H4A1", "TS"]

$運算子:

subset(df, Site=="H4A1")$TS

您可以使用以下簡單命令:

df$SigmaBS <- 10 ^ (df$TS / 10)

聽起來您正在嘗試創建一個名為SigmaBS的新列,其中每一行的值都是10^(value of TS) / 10

如果是這樣,此代碼應該可以工作:

SigmaBS <- sapply(df$TS, function(x) 10^(x/10))
df$SigmaBS <- SigmaBS

暫無
暫無

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

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