![](/img/trans.png)
[英]In R, how do I keep the first single occurrence of a row based on a repeated value in one column?
[英]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.